てくなべ (tekunabe)

ansible / network automation / 学習メモ

2019-03-01から1ヶ月間の記事一覧

[Ansible] read_csv モジュールの基本的な使い方(CSVファイルをリストやディクショナリとして読み込む)

■ はじめに 2019年5月リリース予定の Ansible 2.8 では、CSV ファイルをリストやディクショナリとして読み込む read_csv モジュール が導入されます。カンマ区切りのファイルだけでなく、別のデリミタ(;など)を指定することもできます。 この記事では、 read…

[Ansible] ファイルや変数内の改行ごとに分割してリストにする splitlines() の使い方

■ はじめに ファイルの内容や変数に改行が含まれている場合、1行ごとにリストにしてループなどの処理をしたい場合があります。そんなときに利用できるのが、 splitlines() です。split() が引数で指定した文字で分割するのに対して、splitlines() は改行で分…

[Ansible] グループAとBの両方に所属しているホストを対象にする方法

■ はじめに Ansible では、管理対象のホストをグループ化してインベントリファイルに定義できます。Playbook 内にグループを指定すると、指定したグループに所属するホストのみが対象になります。 では「グループAとBに両方に所属しているホスト」を対象にし…

[Ansible] Playbook(YAML)のための vim のインデント関連設定

■ はじめに Ansible の Playbook を書いて試すときは、普段 VSCode を使っているため、あまり vim は使っていません。ですが、vim しか使えない環境に置かれたときのために vim で Playbook (YAML) を書くときに便利そうな設定を調べました。 インデント関連…

[Ansible] オフライン状態でモジュールの詳細をなど調べる方法(ansible-doc/ansible-config)

■ はじめに Playbook を書いていく過程で、Ansible の公式ドキュメントを閲覧したり、インターネットで検索したりして、調べることが多いと思います。 しかし、もしインターネットにつながっていない状態で調べことをしたい時はどのようにしたらよいでしょう…

[Ansible] ループにリストの変数を渡すときの(私が)忘れがちな挙動差分

■ はじめに ループするためにリストの変数を渡すときに、以下の2パターンを特に区別なく使ってしまうことがあります(私が)。 pattern1 - name: pattern1 debug: msg: "{{ item }}" with_items: "{{ test_list }}" # ここにリストの変数を渡す pattern2 - n…

[Ansible] インベントリファイルを YAML 形式で書く

■ はじめに Ansible のターゲットホストの情報を定義するインベントリファイルは、INI 形式の他にも YAML 形式でも定義できす。 この記事では、2つの例をとって ini と YAML を比較しながら YAML でのインベントリファイルの書き方を説明します。 動作確認環…

[Ansible] 環境変数を取得する ansible_env.hoge と lookup("env", "hoge") の違い

■ はじめに Ansible には 環境変数を取得するための方法として、ansible_env 配下の変数を参照する方法と、 lookup("env", "hoge") のように loopkup プラグインを利用する方法があります。これらは性質が大きく異なります。 この記事では簡単な例で動作を確…

[Ansible] Jinja2 でループインデックス(index/index0)などの特殊変数を利用する

■ はじめに Ansible というより、Jinja2 の機能ですが for によるループの中で、今何番目のループであるかを示すループインデックスなどの特殊な変数を利用できます。 例 変数名 値 loop.index 1 から始まるインデックス loop.index0 0 から始まるインデック…

[Ansible] 任意のfactsを定義できる local facts (custom facts) の定義方法

■ はじめに Ansible では、ホスト名やインターフェースなどのシステムの基本情報を fatcs (ファクト)という単位で収集して管理します。通常、Ansible によって決められた情報が対象になりますが、任意の情報を facts として管理するための local facts (cu…

[Ansible] file モジュールの基本的な使い方(ファイルやディレクトリの操作)

■ はじめに Ansible には、ファイル属性の設定やディレクトリの作成などができる file モジュール があります。 この記事では、 file モジュールの公式ドキュメントに記載されている使用例をベースにして、使い方を説明します。 なお、公式ドキュメントの使…

[Ansible] template モジュールの基本的な使い方(Jinja2テンプレートからファイル生成)

■ はじめに Ansible には、Jinja2 というテンプレートエンジンによるテンプレートファイルを利用してファイルを生成してリモートに送れる template モジュール があります。httpd.conf などの設定ファイルを、変数とテンプレートから生成するといった用途に…

[Ansible] user モジュールの基本的な使い方(ユーザーの作成・削除など)

■ はじめに Ansible には、ユーザーを管理(作成、削除など)する user モジュール があります。 この記事では、 user モジュールの公式ドキュメントに記載されている使用例をベースにして、使い方を説明します。 なお、公式ドキュメントの使用例は、Playboo…