2019-03-01から1ヶ月間の記事一覧
■ はじめに 2019年5月リリース予定の Ansible 2.8 では、CSV ファイルをリストやディクショナリとして読み込む read_csv モジュール が導入されます。カンマ区切りのファイルだけでなく、別のデリミタ(;など)を指定することもできます。 この記事では、 read…
■ はじめに ファイルの内容や変数に改行が含まれている場合、1行ごとにリストにしてループなどの処理をしたい場合があります。そんなときに利用できるのが、 splitlines() です。split() が引数で指定した文字で分割するのに対して、splitlines() は改行で分…
■ はじめに Ansible では、管理対象のホストをグループ化してインベントリファイルに定義できます。Playbook 内にグループを指定すると、指定したグループに所属するホストのみが対象になります。 では「グループAとBに両方に所属しているホスト」を対象にし…
■ はじめに Ansible の Playbook を書いて試すときは、普段 VSCode を使っているため、あまり vim は使っていません。ですが、vim しか使えない環境に置かれたときのために vim で Playbook (YAML) を書くときに便利そうな設定を調べました。 インデント関連…
■ はじめに Playbook を書いていく過程で、Ansible の公式ドキュメントを閲覧したり、インターネットで検索したりして、調べることが多いと思います。 しかし、もしインターネットにつながっていない状態で調べことをしたい時はどのようにしたらよいでしょう…
■ はじめに ループするためにリストの変数を渡すときに、以下の2パターンを特に区別なく使ってしまうことがあります(私が)。 pattern1 - name: pattern1 debug: msg: "{{ item }}" with_items: "{{ test_list }}" # ここにリストの変数を渡す pattern2 - n…
■ はじめに Ansible のターゲットホストの情報を定義するインベントリファイルは、INI 形式の他にも YAML 形式でも定義できす。 この記事では、2つの例をとって ini と YAML を比較しながら YAML でのインベントリファイルの書き方を説明します。 動作確認環…
■ はじめに Ansible には 環境変数を取得するための方法として、ansible_env 配下の変数を参照する方法と、 lookup("env", "hoge") のように loopkup プラグインを利用する方法があります。これらは性質が大きく異なります。 この記事では簡単な例で動作を確…
■ はじめに Ansible というより、Jinja2 の機能ですが for によるループの中で、今何番目のループであるかを示すループインデックスなどの特殊な変数を利用できます。 例 変数名 値 loop.index 1 から始まるインデックス loop.index0 0 から始まるインデック…
■ はじめに Ansible では、ホスト名やインターフェースなどのシステムの基本情報を fatcs (ファクト)という単位で収集して管理します。通常、Ansible によって決められた情報が対象になりますが、任意の情報を facts として管理するための local facts (cu…
■ はじめに Ansible には、ファイル属性の設定やディレクトリの作成などができる file モジュール があります。 この記事では、 file モジュールの公式ドキュメントに記載されている使用例をベースにして、使い方を説明します。 なお、公式ドキュメントの使…
■ はじめに Ansible には、Jinja2 というテンプレートエンジンによるテンプレートファイルを利用してファイルを生成してリモートに送れる template モジュール があります。httpd.conf などの設定ファイルを、変数とテンプレートから生成するといった用途に…
■ はじめに Ansible には、ユーザーを管理(作成、削除など)する user モジュール があります。 この記事では、 user モジュールの公式ドキュメントに記載されている使用例をベースにして、使い方を説明します。 なお、公式ドキュメントの使用例は、Playboo…