【ansible】hello world

はじめに

ずっと前から使おうと思って概要とかは見てたけど実際使ったことはありませんでした。
今回実際に案件で使ってみようと思って実際にいじってみました。

簡単で手軽なのをみんな謳っている感じだったのでまぁつまることもないだろうと思ってたのですが、若干時間かかりました。
で、とりあえず自分のPCからVPSAWSへ実行してみる形を想定して手を動かして見ました。

実際に動かす

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出てこなかった。。。
以上です