インフラ自動化 Ansibleについて

超久々の投稿です。

 

最近インフラ関係の仕事が多く、その中でも自動化がインフラとしての課題なので調べています。

 

その中でもansibleというツールを使用しようと考えており、そのことについて書きます。

 

ansibleとはサーバーソフトウェアのインストールをコードベースで管理できるシステムです。

 

具体的にはインストールやファイル操作など実行したいことをコードベースで記述、操作を行う対象サーバを記述し実行することで、対象にsshし、インストールなどの操作を行ってくれます。

 

もちろん手動でサーバを用意することもできますが、この方法によるメリットは他の人がそのサーバに何がインストールされているかを理解しやすい、作り直しや同じものを作るときに簡単に作れる、インフラの構成をgitなどを用いてコードベースで保存できるのできるなどがあります。

 

サーバを用意する際にどれだけ時間を節約できるかは、インフラエンジニアとしてとても重要な部分なので、どんどん簡単にできる方法を導入していきたいですね。またアプリエンジニアでもローカルに環境を用意することが多くあると思うので、ぜひ使って見てください。

 

ansibleの学習の際自分はオライリーから出ている「初めてのansible」という本を使用しました。

 

この本はansibleのインストールの方法、使い方、設定方法、ansible など、ansibleを一通り使いこなす方法がカバーされており、初心者からansibleをさらに知りたい人まで役立つ内容でした。

 

またansibleのみではなく、他の同種のツール(Puppet, Chef)などとの違いや、dockerなどの他ツールとのコラボレーション方法なども詳しく書いております。特に今はAWSやGCEなどクラウド上でサーバーを動かす機会が多くあるので、これらのことも詳しく書いてあるのも大変役立ちました。

 

ぜひ参考にして見てください。

以上インフラ自動化 Ansibleについてでした。

 

Mysql:my.cnfの読み込み場所の確認

my.confの読み込み場所の確認方法についてです。

基本的にMysqlの設定(例えばエラーログクエリーログ作成場所設定など)はmy.confに記述するのですが、

どこにそのファイルがあるかを確認する方法です。

 

こちらは知っていれば単純で、mysql –helpとコマンドを打つと設定されている変数や設定を見ることができます。

 

ですので

mysql –help |grep ‘my.cnf’

とコマンドを打つことで場所を確認することができます。

 

mysqlのパフォーマンスチューニングをする際などに必要になる設定ファイルであるので、

どこにあるかを確認できるコマンドを覚えておくといいかもしれませんね。

 

以上、my.confの読み込み場所の確認方法についてでした。

Unity:Mario64を再現するプロジェクト

最近一部で話題の面白いものを見つけたので共有しておきます。

 

今回紹介するのはUnity上でMario64を再現してみようというもので、

かなり完成度高く再現されています。Urlはこちらになります。

 

ステージはまだ少ないですが、基本的な操作などは原作にかなり近いところまで作られています。(むしろこちらの方が操作が簡単に感じました。(^^;))

 

Unityを使うことでゲーム作成が簡単になった今こういった試みが多く行われれば世界がより一層楽しくなりそうですね。

 

以上UnityでMario64を再現するプロジェクトでした。

GoogleChrome:TabMemFreeでChrome Helperのメモリを解放

GoogleChromeのアドオンTabMemFreeの紹介です。

 

最近Google Chromeを使っていると、Macのファン音がうるさいことがあります。

原因を調べようとMacのUtilityFolder内のアクティビティーモニターで確認すると、

どうやらChrome Helperの仕業らしいのでその対策として紹介します。

 

まずChrome Helperが重い理由としては、Chromeはタブを一つ開く度に

Google Chrome Helperを起動させているからです。

 

そのため複数のタブを開くとその個数分のHelperを起動するため、

リソースを大量に食ってしまうということです。

 

この問題を解決するためには、TabMemFreeを使用します。

使用方法は簡単でリンク先でダウンロード、インストールするだけです。

 

これをインストールすることで使用していないタブのメモリを自動で解放してくれます。

 

初期設定では使用せず15分経つと解放されます。

時間を変更したい場合はインストール後ChromeのURL欄の右に、

アイコンが表示されるのでそこで右クリック->オプションを選びます。

 

開いたページのTabTimelimitを変更すれば解放までの時間を変更できます。

 

余談かつ内容がデベロッパー向けかつJavaScript限定ですが、

メモリ管理についてこちらで詳しく解説されています。

今回の内容に関係している部分は最初の7分程度ですが、

メモリに関して詳しく学びたい方は参考にしていただくといいかもしれません。

 

Gmailに関する効率化について分かりやすく解説されています。(注:英語の内容です)

 

Chromeは便利ですが使用上重くなる場合がよくあるので、ぜひ使用してみてください。

以上、GoogleChromeのアドオンTabMemFreeでメモリーを解放する方法でした。

Mac:ファイルの貼り付けをする

Macでファイルの貼り付けをする方法です。

 

windowsOSからMacOSへの切り替えで一番最初に不便だと思ったのが、

Macではファイルの切り取り、貼り付けがなくただファイルを移動したい時に大変不便です。

 

今日解説するのはそんな時に有効な方法です。早速解説してきます。

ファイルの移動は以下の2ステップで可能です。操作はFinder上で行います。

 

1:まず移動したいファイルをコピーします。コピーは右クリックでも、

command+cでもどちらでも構いません。

2:次に移動したいフォルダーでOption + Command +Vを押します。

このOptionを押すというのが重要でこれを押すことによりWindowsの貼り付けと同じ動きになります。

 

これで移動後、元のファイルの削除の手間が省けます。

 

大変便利な方法なのですが、意外と知らない方も多いと思うので

参考にしていただければと思います。

 

以上、Macでファイルの貼り付けをする方法でした。

 

C:配列にまつわるちょっとした不思議な現象

C言語の配列にまつわる不思議な現象についてです。

例としてC言語で配列

a[11] = 1;

と定義したとします。

この時、a[11]以外にもこの配列にアクセスすることができます。

その方法とはキーと配列名を入れ替えた、

11[a]を呼び出すことです。

C言語では入れ替えたものを呼び出すと上と同じ結果になります。

 

ちょっとした豆知識でした。

Ubuntu:日本語のディレクトリ名を英語に変更する

Ubuntuにおいて日本語のディレクトリ名を英語に変更する方法です。

日本語版のUbuntuをインストールすると一部のディレクトリ(ダウンロードなど)が、
日本語になってしまいます。

GUI上で操作する際にはこの設定で特に問題になりませんが、
コマンドでディレクトリへ移動する際などいちいち日本語入力にし、
移動しなくてはなりません。

そこで今回はこの設定を変更し、日本語化しているディレクトリ名を元に戻す方法です。
変更するには以下の

LANG=C xdg-user-dirs-gtk-update

というコマンドを入力します。
これによって日本語名だったディレクトリが英語になります。

注意点としてはこのコマンドではディレクトリそのものが変更されるのではなく、
新しく英語のディレクトリが作成される点です。

つまり今まで使っていたディレクトリ内のデータなどは移動されないということです。
ですので変更後は自分で移動しなくてはいけません。

いちいち日本語入力に変更しなくてはいけないのは面倒くさいので、
日本語になってそのままにしている方は、ぜひ検討してみてはいかがでしょうか。

以上、Ubuntuで日本語のディレクトリ名を英語に変更する方法でした。

Ubuntu:立ち上げの際Logを表示する。

Ubuntuで立ち上げの際Logを表示する方法です。

通常Ubuntuはデフォルトではinitのログ(立ち上げの際、文字列がずらーっと表示されるあれです)
が非表示になっています。
今回はそのLogを表示して今なにをやっているのかを確認できるように変更したいと思います。

ではさっそく本題に入りたいと思います。

Initのログを表示するために、/etc/default/grubを変更します。
変更には、好きなEditor使用してください。

中央あたりに#GRUB_TERMINAL=consoleとあるので、そちらの最初の#を外し、
consoleをserialに変更、保存します。
ラストにupdate-grub2でgrub.cfgを更新します。

注意点としては、直接grub.cfgを変更せずdefault内のgrubを変更することです。
/boot/grub/grub.cfgの先頭に書いてありますが、こちらのファイルを直接編集することは
禁じられています。

以上の設定を行うと、initのログが見れるようになります。

以上、Ubuntuで立ち上げの際Logを表示するでした。