LoginSignup
2
0

More than 3 years have passed since last update.

Ansible メモ

Last updated at Posted at 2020-02-14

ansible は全体を理解するまで、どこが起点になるのかがわかりにくい。

最も代表的な名前であろう ansible コマンドは、最も使わないコマンド。おそらく ansible-playbook が一番使うコマンド。ansible コマンドは task 一つを実行する。ansible-playbook は task を束ねた playbook を実行する。なんだかんだで Makefile の代わりに使うことが多くなった。

あまり使わないけれども、困ったときに立ち戻る場所としては、ansible コマンドは次の例から出発するのがよいと思う。task 一つの実行なので、コマンドライン引数で全て渡す。

/bin/bash
ansible -m debug -a "msg=hello" localhost

ansible-playbook コマンドは次の例から。こちらは YAML で playbook ファイルを書いて実行します。

playbook.yml
---
- hosts: localhost
  tasks:
  - debug:
      msg: hello

上の起点から手を広げていくと、感覚がつかみやすい

  • サーバ内でプロビジョニングとして実行したい場合
    • localhost の部分を変える
    • host 名か group 名
    • host 名や group 名の定義は別途 inventory で指定する
    • ざっくりやりたい場合は特殊なグループ名 all を使う
  • 別の task を実行したい場合
    • debug module の代わりに別の module を指定する
    • 引数は module ごとに異なる
    • あるいは task をグループ化した role を使う
    • tasks と roles は両方指定できるが、実行順に制限があるので注意
    • 困ったら tasks を基本として、import_role で role を取り込むとよい

ansible-galxy は role を複数分割して使い始めると便利になってくる。

その他雑多な気が付いたこと

when, tag, connection, become など、いくつかの task でまとめて条件を切り替えたい場合は、block を使うと少し整理できる。

group に host を定義することはできるが、host に group を定義することはできない。
/etc/group と同じといえば同じなので諦める。諦めきれない場合は inventory script を自作すると良い。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0