【ansible】hello world
はじめに
ずっと前から使おうと思って概要とかは見てたけど実際使ったことはありませんでした。
今回実際に案件で使ってみようと思って実際にいじってみました。
簡単で手軽なのをみんな謳っている感じだったのでまぁつまることもないだろうと思ってたのですが、若干時間かかりました。
で、とりあえず自分のPCからVPSやAWSへ実行してみる形を想定して手を動かして見ました。
実際に動かす
Macでの作業で今回はvagrant上のサーバへ実行してみました。
とりあえず最低限知っておいた方がよさそうなキーワードは以下
インベントリファイル
意味的にはhostsファイルみたいな感じ。使用したいサーバーはとりあえずここに書かないとダメ。
自分的には.ssh/configのHostに書いてるものを書くと解釈したらスッキリした。
playbook
手順書みたいなもの。手順書だと実際にコマンドを書くけど、ansibleのモジュール(方言)使って記述する感じ。
以下の.ssh/configの場合の例
.ssh/config
Host vagrant_web HostName 192.168.33.10 Port 22 User vagrant IdentityFile path/to/秘密鍵
※vagrantの場合、秘密鍵とかあんまり意識しないけどvagrant ssh-configでIdentityFileで確認できる
hosts(インベントリファイル)
vagrant_web
set_timezone.yml(playbook)
- hosts: vagrant_web user: vagrant become: true tasks: - name: set timezone command: cp /usr/share/zoneinfo/Japan /etc/localtime - name: set timezone copy: content='ZONE="Asia/Tokyo"' dest=/etc/sysconfig/clock
実行する
$ ansible-playbook -i ./hosts ./set_timezone.yml
何にはまったのか
いろんなサイト見てたらインベントリファイルは/etc/ansible/hostsに書いてる。けどMacだとそれがなかったから。
実際はオプションiを使えばファイルを指定できる。
ヘルプみるとそもそもデフォルトの場所もosによって違うみたい。
$ ansible -h -i INVENTORY, --inventory-file=INVENTORY specify inventory host path (default=/usr/local/etc/ansible/hosts) or comma separated host list.
タイトルはhello worldだけどhello world出てこなかった。。。
以上です