【Hello】ansibleに入門してみた【ansible】
きっかけ
前から使おう使おうと思っていたansibleを少し触ってみて色々苦労しながら簡単な設定を入れたりはできるようになったので備忘録を兼ねてメモを残しておこうと思う。
要件
色々考えてみて、一個のファイルを単純にmain.ymlに全てを書くよりは最初からある程度roleに各設定値を外出ししていくことに慣れていければと思って以下の通りの要件でやることにする。
- ホストOS:OS X 10.12 ターゲットOS:CentOS7.4
- commonsetロール内のタスクを実行する
- タイムゾーンをAsia/Tokyoに設定する
- SELinuxをpermissiveにする
- ファイアウォールでTCPポート80番をdisableに443番をenableに設定する
実際に設定したファイル
以下のように実装した。一応実行したら無事にタスクが実行できたのでこれで問題にないかと。 ansibleは入れ方が色々あるけど自分はpipでインストールした。
./roles/commonset/tasks/main.ymlにおいて、カレントディレクトリのmain.ymlを実行する
作成する中で苦労したこと
- 普段は案件でWindows系の仕事しかやってない(Windowsの案件しかやったことない)せいかLinuxの基本的な部分がわからなかったように感じた。特にターゲットサーバにssh接続する部分は久しぶりに物理上の端末にvirtualboxで仮想マシンを立てる作業をしたのでいろいろなサイトを見てやっとできるようになったという感じだった。
- ymlファイルのお作法的な部分がわからなくてansibleさんにすごく怒られた。
- まだ一つのロールを実行しているだけだけど「これを業務で使うレベルまでスケールさせるときにタスクの分け方とかどうするんだろう」みたいな疑問を感じた。(この辺はansibleのコードに限らずプログラマな人のコードを見てどうやって関数とか分けてるんだろう、どう設計しているんだろうみたいな視点を持って業務に当たりたいなと思った)
今後は
- このファイルを用いて例えば、wordpressのインストールを自動化するなどやっていければいいなと思う。(phpとかMySQLとかロールに設定したし...)
- serverspecとかと連携して、インフラの構築からテストまで自動化できるみたいなことできるといいな
とかとか色々思ってるので、また時間ができたら色々いじりたいな思う。