default値を表すroleは「default」にする。 「defaults」はansibleで使われるディレクトリ名なので、区別するために分けた。
原則、動詞 + 対象とする。 Ex: install nginx
必要なライブラリ・モジュールのインストールと、defaults値読み込みはdependencies インストール後の設定ファイル設置はinclude_role
Ver2.3時点で、include_role内でのdependenciesが実行されない様子。 --list-tasksでは実行対象として含まれているのでバグだと思われる。 仕方ないのでinclude_roleを使う際は、dependenciesに影響されない形になるよう注意する。
- 単語の区切りはアンダースコア1文字で行う
- 大区分の区切りは「__」(アンダースコア2文字)で行う
- roleに記載してある/,-は全てアンダースコアに変換する。 基本的な命名ルールは[変換後のrole名]__[変数名]。
- 特殊な用途で使う変数は、大文字から始める。 この場合の命名ルールは[用途名][role名][変数名] 以下用途名の種類。 Register: registerで登録した変数。 Fact: set_factで新たに登録した変数。 Arg: playbookで渡した変数。
- 一旦初期化した変数は、playbook内でset_factすると、その後その値で固定される。 変数を使い回す場合は、set_factで書き換えない事。
Global, Play, Hostの3種類が存在する。 roleのdefaultsはPlayスコープ。roleを実行する度に初期化される様子。 参考: http://docs.ansible.com/ansible/playbooks_variables.html#variable-scopes
- --list-tasksオプションを付与すると、実行予定のタスク一覧が表示される(playbookの実行はされない)