てくなべ (tekunabe)

ansible / network automation / 学習メモ

2020-04-01から1ヶ月間の記事一覧

[Ansible/AWX] 起動したジョブをあとあから awx コマンドでモニターする(monitor サブコマンド)

はじめに 以前の記事で、awx コマンドでジョブの実行を終了までリアルタイムに見届ける --monitor オプションをご紹介しました。 tekunabe.hatenablog.jp この --monitor オプションは、launch サブコマンドのオプションなので、起動とセットでした。 AWX 11…

[Ansible/AWX] ジョブテンプレート・ワークフロージョブテンプレートのコピーではスケジュール、通知、パーミション設定はコピーされない

はじめに Ansible Tower / AWX のジョブテンプレート、ワークフロージョブテンプレートにはコピー機能があります。 似たようなテンプレートを作成するときにとても便利です。 少し注意が必要なのは、スケジュール、通知、パーミションの設定はコピーされない…

[Ansible] Junos に対して netconf ではなくSSH (network_cli) でコンフィグ投入する(cli_configモジュール)

はじめに Ansible の Junos モジュール郡は、コネクションプラグイン(接続方式)として、netconf と network_cli (いわゆるSSH)に対応しています。 ただし、各モジュールごとに、利用できるコネクションプラグインが決まっています。 Junos OS Platform Opt…

[Ansible/AWX] アドホック実行画面の追加変数欄では ansible_ で始まる変数名を指定できない

はじめに Ansible Tower / AWX には、Playbook をジョブテンプレートとして実行する機能の他にも、アドホックな ansible コマンドを実行する機能もありま -e オプションに相当する、追加変数の設定欄がありますが、指定できる変数が制限されています。 具体…

[Ansible/AWX] アドホック実行画面で選択できるモジュールを追加する

はじめに Ansible Tower / AWX には、Playbook をジョブテンプレートとして実行する機能の他にも、アドホックな ansible コマンドを実行する機能もあります。 デフォルトでは利用できるモジュールが限られていて、たとえばネットワーク機器に対して有効なモ…

[Ansible] Playbook に手を加えずにデバッガーを有効にする(ENABLE_TASK_DEBUGGER)

はじめに Ansible には Playbook Debugger というPlaybookのデバッグ機能があります。 Playbook の途中のタスクで処理を止めて、変数の値を確認したり書き換えたりできるデバッグ機能です。Play や Task に debugger: 止める条件 という指定すると有効になり…

[Ansible] Tower/AWXのジョブテンプレートやワークフロージョブテンプレートを専用モジュールで起動する

はじめに Ansible Tower / AWX の操作に対応する awx.awx コレクションには、ジョブテンプレートやワークフロージョブテンプレートを起動するモジュールがあります。 この記事では、簡単なサンプルをもとに使用例をご紹介します。 検証環境 AWX 11.0 ※ Ansib…

[Ansible] 各タスク内で実行するホストの順番を指定する(order)

はじめに 各タスク内で、どのようなホストの順番で実行されるのか、を指定する order というディティブがあります。 先日たまたま知ったので、せっかくなので、検証します。 [2020/08/02 追記] order で指定できるのは、実行開始の順であって、結果の表示順…

[Ansible] awx コマンドでジョブの実行を終了までリアルタイムに見届ける(--monitor オプション)

はじめに Ansible Tower、AWX をコマンドで操作できる awx コマンドというツールがあります。 tekunabe.hatenablog.jp このコマンドツールのドキュメントの Creating and Launching a Job Template を見ていたときに、ジョブ起動時に --monitor というオプシ…

[Ansible/AWX] ワークフロー内の一連のジョブの実行ログをファイルで保存するPlaybook

はじめに Ansible Tower / AWX では、Playbook の実行ログがサーバー内に自動的に保存されます。 いつだれが実行してどうなったかを追跡するのに便利です。 そのログを、ファイルとしてダウンロードすることもできます。 出力のダウンロード 数個ログだった…

[Ansible] Tower や AWX をコマンドで操作できる awx コマンドのインストール、設定、動作確認

はじめに Ansible Tower / AWX は GUI の他にも、REST API 機能があります。API を利用すると、プログラムから操作しやすくなったり、CLI 化しやすくなったリします。 AWX には、API をラッピングしたような awx という CLI ツールがあります。 (ここでは A…

[Ansible] 他のホスト変数を参照、設定する(hostvars、delegate_to/delegate_facts)

はじめに Ansible で他のホストのホスト変数を参照、設定したりする方法ご紹介します。 ■ 他のホスト変数を参照する 他のホスト変数を参照するには hostvars を利用します。 Playbook サンプル Playbook です。 localhost、rt1 が実行対象で、rt1 のタスクの…

[Ansible] AWX11.0 リリースによる tower モジュールの変更点

はじめに 2020/04/16 に AWX 11.0 がリリースされました。 Release Release 11.0.0 · ansible/awx · GitHub Ansible 2.9 まで、Ansible 本体に標準で付属していた tower_* モジュールは、AWX 側で開発され、awx.awx collection として配布されています。 tek…

[Ansible] register や set_fact した変数は Play を跨げる

はじめに (聞かれると「あれ、どうだったかな・・」と不安になるシリーズ) 以下の記事を拝見して思ったのですが、 zaki-hmkc.hatenablog.com register や set_fact した変数は Play を跨いで有効です。 言い換えると Playbook スコープです。 set_fact モ…

[Ansible] 「ERROR! failed to combine variables, expected dicts but got a 'dict' and a 'AnsibleUnicode'」発生時の対処

遭遇したエラー 先日、ansible-playbook コマンド実行時に、以下のエラーに遭遇しました。 $ ansible-playbook -i inventory.ini test.yml PLAY [sv] ***************************************************************************************************…

[Ansible] Tower 上のインベントリを CLI Ansible のダイナミックインベントリとして利用する

はじめに Ansible は、Inventory Plugin という機能によって、様々な形式のインベントリを利用できるようになっています。 よくある INI や YAML 形式のスタティックなファイル以外にも、ダイナミックにインベントリ情報を取得することもできます。 たとえば…

[Ansible] インベントリ変数で指定した秘密鍵のパスはクレデンシャルの秘密鍵データより優先される

はじめに 2020/04/14 に開催された Ansible もくもく会にメンターとして参加させていただきました。 サーバー編、ネットワーク編とあるうちのネットワーク編を主に見ていました。 実際に自分自身もハンズオンで試してみると、Ansible Tower のパートで、ネッ…

[Ansible] VyOS で任意のファイル名で save するには、cli_config モジュールを利用する

はじめに VyOS では、コンフィギュレーションモードで save コマンドを実行すると、コンフィグを機器内に保存できます。 Ansible としては、vyos_config モジュールの save オプションの指定により、同じことができます。 一方で save my_config.txt のよう…

[Ansible] vyos_config モジュールで VyOS の設定変更をする

はじめに 前回の記事で、Ansible で VyOS を扱うための準備や、簡単な show コマンドを実行する方法をご紹介しました。 tekunabe.hatenablog.jp この記事では、vyos_config モジュールを利用した設定変更の Playbook をご紹介します。 動作確認環境 Ansible …

[Ansible] VyOS モジュール利用のことはじめ

はじめに Ansible は VyOS にも対応していて、設定の変更や、各種 show コマンドの実行による情報取得ができます。 この記事では、VyOS モジュールを利用するためのインベントリファイルの作成、認証情報の定義などの準備と、簡単な show コマンドを実行する…

[Ansible] molecule でネットワーク機器の設定後のテストを自動化する(いまいち編)

はじめに molecule とは molecule は、Ansible のロールをテストするフレームワークです。 これまで、バージョンアップするごとに結構インパクトの大きい変更があって、やや敬遠気味でした。バージョン 3.0 で、デフォルトの verifier(実際にテストを担うも…

[Ansible] yum モジュールで特定のパッケージがインストール済みであることを確認する

はじめに 特定のパッケージがインストール済みであることを確認する Playbook です。 動作確認環境 ansible 2.9.19 ansible-base 2.10.4 仕組みは以下のとおりです。 yum モジュールの state オプションで installed を指定する このタスクをチェックモード…

[Ansible] ロールを引数ありの関数のように使う

はじめに Playbook を書いていて処理のかたまりをロール化したとき、一部の処理だけ変数で挙動を変えたいときはないでしょうか。この記事ではロールを引数ありの関数のように使う方法を紹介します。 Python でいうと以下のようなコードです。 greeting は、…

[Ansible] PaloAlto(PAN-OS)の API を uri モジュールで実行する

はじめに Ansible には PaloAlto(PAN-OS) 向けのモジュールがあります。Ansible 2.8 までは標準モジュールとして付属していました。2.9 では Deprecated(非推奨)となり、Collection モジュールを利用することになっています。 ですが、モジュールが用意さ…

PaloAlto (PAN-OS) のAPI 経由でカスタムURLカテゴリを追加する

はじめに PaloAlto (PAN-OS) には API 機能があります。どんな事ができるかはこのあたりのページを確認すると想像できます。 この記事では、API 経由でカスタムURLカテゴリの追加を試してみます。 画面で言うこれ 動作確認環境 PAN-OS 9.1 準備 API KEY の取…

[Ansible/AWX] AWX でカスタムの仮想環境(venv)パスを認識させる方法

はじめに AWX や Ansible Tower では、デフォルトで用意されている venv (/var/lib/awx/venv/ansible)の他に、でカスタムした Ansible 環境を用意して利用できます。 参考: Ansible Tower のドキュメント 「設定 > システム 」画面の「カスタムの仮想環境…

[Ansible] Jinja2 構文を展開せずに文字列そのままとして指定する

通常は変数展開される tower_credential_type モジュールを利用して、カスタムクレデンシャルの injectors オプションを利用して、以下のような値を投入する Playbook を作ろうと思ったことがありました。 こういうのを登録したい しかし、以下の「ここ」の…

[Ansible/AWX] デフォルトで利用されている venv 環境のパッケージ一覧の調べ方

はじめに AWX では、デフォルトの Python 環境として /var/lib/awx/venv/ansible が利用されています。 以前から不思議だったのですが、コマンドライン版の Ansible では 2.8 から、ネットワーク機器への接続に別途 paramiko をインストールする必要があるの…

[Ansible] tower_workflow_job_template_node モジュールでノード定義とリンク定義をうまくやる

はじめに 以前の記事で、Collection 版の tower モジュールである、tower_workflow_job_template、tower_workflow_job_template_nodeを利用してワークフローを作成する Playbook をご紹介しました。 tekunabe.hatenablog.jp そのなかで、 本当はノードの作成…

[Ansible] Ansible Tower / AWX のワークフローで別のジョブテンプレートに変数を渡せる set_stats と 追加変数の関係

はじめに Ansible Tower / AWX のワークフローで、別のジョブテンプレートに変数を渡せる set_stats モジュールがあります。 set_stats に登録した変数は、かなり優先度が高く、追加変数(Extra Variables)を上書きするケースもあります。 この記事では一例…