こんにちは、ちゃりおです。
ansibleのインベントリyamlで書けるのを最近しりました。
(既存がiniでコピペして使ってたので。。)
今回は、yamlでのインベントリの書き方についてまとめてみます。
ちゃりお
インベントリのyamlでの書き方について
インベントリファイルとは
Ansibleを実行する対象をリストにしたファイルです。
このファイルにサーバやネットワーク機器の情報を書きます。
対象に与える変数を定義することもできます。
サーバAにはntpAの設定、サーバBにはntpBの設定をいれるなど。
iniで書いた場合
mail.example.com
[webservers]
foo.example.com
bar.example.com
[dbservers]
one.example.com
two.example.com
three.example.com
- 可読性が高い(シンプルにホストだけ書くならiniのほうが個人的に読みやすいです)
- 書くのが簡単
- デフォルトがini(/etc/ansible/hosts)
ymlで書いた場合
all:
hosts:
mail.example.com:
children:
webservers:
hosts:
foo.example.com:
bar.example.com:
dbservers:
hosts:
one.example.com:
two.example.com:
three.example.com:
ymlで書く場合、リストを使うことができます。
同じことをiniでやる場合、ファイルを分割する必要があります。
all:
children:
webservers:
hosts:
foo.example.com:
vars:
logrotate:
conf_names:
- syslog
- nginx
- リストが使える
- ymlで統一できる
まとめ 結局どっちで書くのがいいの
新しく書くならymlのほうがいい気がします。
リストが使えるのでより柔軟にインベントリ書くことができます。
また、サポートされるようになったのもyml形式のほうが新しいです。
既存でiniを使っている場合、無理に移行する必要はないと思います。
ファイルを分ければ、特にiniでできないこともないです。
参考
Working with Inventory
[Ansible] インベントリファイルを YAML 形式で書く
関連記事
Ansibleでamazon-extrasを使ってphpをインストールするこんにちは、ちゃりおです。
今回は、amazon-extras(amazonが管理しているパッケージ群)を使ってphpをインストールし...
【Ansible】playbookを分割してユーザ作成・グループ作成をする以前、ユーザの作成をやってみたのですが、今回はplaybookを分けてやってみます。
playbookを分けると、再利用性や可読性が高...
効率よく公開鍵を配布する方法 Ansibleで複数のサーバとユーザに公開鍵を登録する複数のユーザを作成して、それぞれ公開鍵を配置したい時がたまにあります。
sshして公開鍵を置くのは、面倒です。1台とかだったらいいかもし...