ansibleとは
特徴
試す
- インストール
- sshノーパスログインを設定しておくと簡単(省略)
- pingを試す
$ mkdir -p ansible/inventory
$ vim ansible/inventory/hosts
[targets]
対象サーバIP
$ ansible all -i inventory/hosts -m ping [-u ユーザ名]
- Playbookを試す
- test.ymlでtargetsを指定しているため、inventory配下のhostsファイルのtargetsが選ばれる。また、group_vars配下のtargets.ymlの設定は暗黙的に読み込み実行する。
$ mkdir -p ansible/group_vars
$ vim ansible/group_vars/targets.yml
message: "Hello Ansible !"
fruits:
apples:
amount: 10
bananas:
amount: 20
oranges:
amount: 30
$ vim ansible/test.yml
- hosts: targets
user: root
tasks:
- name: output message.
debug: msg="{{ message }}"
- name: output fruits
debug: msg="We want {{ item.value.amount }} {{ item.key }} !"
with_dict: "{{ fruits }}"
$ ansible-playbook -i inventory/hosts test.yml
- group_vars
- host_vars
- roles
- roles単位で分割管理を行う。いわゆるクラスやモジュールのイメージ。
- フォルダ構成
- 参考(ベストプラクティス)を見るといい。
- 今の業務レベルではステージパターン(参考:Ansible inventoryパターン)で十分
参考