てくなべ (tekunabe)

ansible / network automation / 学習メモ

ansible

[ansible] あのモジュール、どのコレクションにいった?を探す

はじめに Ansible(-base) 2.10 から、多くのモジュールはコレクションという管理、配布方式に移行しました。 その関係で「前あったあのモジュール、プラグインはどのコレクションにいったんだ?」と気になることがあるかもしれません。 正確には、しれません…

[Ansible] azure.azcollection.azure_rm インベントリプラグインで停止中のVMも対象にする

はじめに Ansible から Azure の VM の情報を取得して動的にインベントリを生成できる azure.azcollection.azure_rm インベントリプラグインという便利なものがあります。 こちらの issueを見てなるほどと思ったのですが、デフォルトだと実行中(running)で…

[Ansible] Ansible から HashiCorp Vault のシークレットを取得する

はじめに 前回の記事で、HashiCorp Vault の kv シークレットエンジンを使ってシークレットの登録をしました。 今回は、そのシークレットを Ansible から取得して表示したり、機器への接続パスワードに利用することを試します。 Ansible の community.hashi_…

[Ansible] Ansible 3 以降のモジュール一覧のページ

はじめに Ansible のモジュールの一覧を確認したいときは、よく公式ドキュメントを参照します。Ansible 2.9 までは、Module Indexというページがあり、さらにカテゴリごとのページに飛べます。また、All modules というページでは全モジュールの一覧が表示さ…

[Ansible] スキップされたタスクの結果は is skipped でもあり is succeeded でもある

はじめに Ansible では、タスクの実行結果を変数に保存し、その結果を後続のタスクで確認する機能があります。 docs.ansible.com そういえばどうなんだろうシリーズといいますか、「スキップされたタスクって succeeded 扱いだっけ?」と思ったことがありま…

[Ansible] もくもく会コンテンツのリポジトリにある資料「Ansible Best Practices」

Ansible ユーザー会では定期的にもくもく会というハンズオンイベントを開催しています。 次回は 2022/04/21 です。 コンテンツは以下のリポジトリにあります。 github.com 先日見つけたのですが、Ansible Best Practicesという資料がありました。 こうかいて…

[Ansible] Automation Controller 上で実行環境コンテナ内のコレクション一覧を確認する(やや力技)

はじめに AAP 2.x になってから、Ansible の実行環境が Python の venv から、コンテナに変わりました。 コンテナの中に、利用するコレクションを仕込んでおくわけですが、Automation Controller を触ってるときに、コンテナ内のコレクション一覧を確認した…

[Ansible/AAP] Automation mesh でコントロールノードと実行ノードの分離を試してみた

はじめに ■ 1. Automation mesh におけるノードの種類 ■ 2. 今回の環境 (コントロールノードと実行ノードの分類) ■ 3. 下準備 3.1. subscription-manage による作業 3.2. SSHキーの接続 ■ 4. インストール 4.1. インストーラーの準備 4.2. inventory の修…

[Ansible] ansible-lint 6.0.0 のインストールで ansible-core 2.12.3 も一緒にインストールされる

はじめに 先日 ansible-lint 6.0.0 がリリースされました。 github.com .config/ansible-lint.yml を読み込むようになったり、ansible 2.9 や Python3.6、3.7 がサポートされなくなったり、フォーマット機能がつくなど変更がありました。 また、インストール…

[Ansible] よく見る公式ドキュメントのページ5選

はじめに チーム内で、Ansible の公式ドキュメントの見方についての話になったときに、よく参照するドキュメントはどこかという話に発展しました。 5つ紹介します。対象プラットフォームに限定しないものを取り上げています。 1. 各モジュールの説明ページ …

[Ansible] 「つまずき Ansible 【Part35】ロールの実行に必要な変数をチェック」ふりかえり

はじめに 動画 ロールと変数とチェック Role argument validation 必須チェック エラーになるケース 正常なケース チェックの無効化 型チェック 選択肢チェック validate_argument_spec モジュール チェックモードでもvalidateされる ansible-docによるargum…

[Ansible] 安全側に倒す ansible.cfg の設定

はじめに 意図しないまま実行を進めないようにするため、ちょっとしたことでもエラーに倒して早めに処理を止める設定の紹介です。インベントリ周りが中心です。 ansible.cfg [defaults] duplicate_dict_key=error [inventory] host_pattern_mismatch=error a…

[Ansible] --vault-password-file で指定するファイルはスクリプトでも可なので環境変数も参照できる

--vault-password-file オプションとは Ansible にはパスワードなどの機密情報を暗号化する ansible-vault という機能があります。 Playbook 実行時には何かしらの方法で復号パスワードを指定する必要があります。ansible-playbook コマンドにも関連オプショ…

[ansible] ansible-navigator で --step や vars_prompt によるインタラクティブな操作をする

はじめに ansible-navigator は、Playbookの実行、ドキュメントなどの情報が表示できる TUI ツールです。 Playbook の実行に関しては、ansible-playbook コマンドでできることはだいたいできると思ってよさそうです。 ansible-playbook コマンドの各オプショ…

Azure の公式ドキュメントを修正してみた

はじめに Azure の公式ドキュメントには、Ansible から操作するための情報が多く載っていてありがたいです。 docs.microsoft.com 眺めていたら、Get Started: Configure Ansible on an Azure VMというページで、インデントがおかしいところがありました。 イ…

[Ansible/Azure] azure_rm インベントリプラグインでインベントリ名を仮想マシン名に合わせる

はじめに azure.azcollection.azure_rm というインベントリプラグインは、AzureのVMの情報を動的に取得できます。 対象のリソースグループ名やグループ化の仕方、変数の持ち方などをYAMLで定義します。 このインベントリプラグイン利用時に、インベントリ名…

[Ansible] 2021年のAnsibleリリースまとめ

はじめに 2020年は、ansible-base (現 ansible-core) と collection に分かれての配布が始まったことが大きな出来事でした。 2021年も、ansible-core も、コミュニティが選別したcollectionをセットにしたパッケージもそれぞれアップデートされていきました…

[Ansible] ansible-plyabook コマンドでインベントリを複数指定する

はじめに ansible-playbook コマンドの -i オプションは複数のインベントリを指定できます。 例 ansible-playbook -i inventory01.ini -i inventory02.ini playbook.yml この記事ではかんたんなサンプルと実行例を紹介します。 動作確認環境 ansible 5.1.0 (…

[Ansible/Azure] 含まれるリソースまるごとリソースグループを削除する

はじめに azure.azcollection.azure_rm_resourcegroupモジュールは、Azureのリソースグループを作成したり削除したりできます。 削除したいときは、state: absent を指定しればよいですが、リソースグループ内にリソースが含まれていると削除できません。 ど…

[Ansible] Azure Virtual Machines を generalize(一般化)する

はじめに azure.azcollection.azure_rm_virtualmachineモジュールの generalized オプションを利用すると、VMを generalize できます。 Azure CLI でいう az vm generalize 、PowerShell でいうSet-AzVm -Generalizedです。(後述しますが、VMの状態遷移の挙…

[Ansible] FQCN で省略系のモジュール名を指定できる仕組み(cisco.ios.ios_config を cisco.ios.config で)

この記事は、Ansible Advent Calendar 2021 (Adventar版) 20日目の記事です。 はじめに 先日 Ansible もくもく会に参加させていただきました。(参加レポート) ネットワーク編のコンテンツでは、たびたび cisco.ios.config のような、少しモジュール名を省…

[Ansible] 新コンテツの Ansible もくもく会に参加してみた

この記事は、Ansible Advent Calendar 2021 (Adventar版) 17日目の記事です。 はじめに ひさびさに開催された Ansible もくもく会に参加しました。 ansible-users.connpass.com 今回から新しいコンテンツ。環境は Ansible Automation Platform 2.0 Early Acc…

[ansible] ansible-builder で Automation Hub 経由のコレクションをインストールしたイメージをビルドする

この記事は、Ansible Advent Calendar 2021 (Adventar版) 16日目の記事です。 はじめに ansible-builder では、requirements.yml にインストールしたいコレクションを指定し、Execution Environment 定義ファイル(デフォルトでは execution-environment.yml…

[Ansible] Cisco IOS の allowed vlan の 範囲表記をリストにバラす vlan_expander フィルター

この記事は Ansible Advent Calendar 2021 の12日目の記事です。 はじめに Cisco IOS の機器などで、インターフェースへのトランクVLANの割り当て時に以下のように、範囲指定を含めて指定ができます。 interface GigabitEthernet1/3 switchport trunk allowe…

[ansible] ansible-runner で ansilbe-playbook コマンドのオプションを指定する --cmdline オプション

この記事は、Ansible Advent Calendar 2021 (Adventar版) 11日目の記事です。 はじめに ansible-playbook コマンドのオプションを ansible-runner経由の Playbook 実行(ansible-runner run コマンド) でも指定したいことはないでしょうか。 以下のように、…

[ansible] ansible-runner で複数のインベントリファイルを扱う

この記事は、Ansible Advent Calendar 2021 (Adventar版) 10日目の記事です。 はじめに ansible-runner では、インベントリやPlaybook、設定などの資材類のディレクトリ構造の基本が決まっています。 ansible-runner.readthedocs.io インベントリは inventor…

[ansible] ansible 関連のリリース情報まとめRSS(ansible、molecule、各種コレクションなど)

はじめに Ansible のニュースレターである The Bullhorn の Issue #34で知ったのですが、ansible や molecule、それから各種コレクション(おそらくansible community package内)のリリース情報をまとめて取得できる RSS フィードがあります。 特にコレクシ…

[Ansible] Ansible 2.9 で インストールしたcollection のバージョン一覧を表示する(jq利用)

はじめに Ansible 2.9 には ansible-galaxy collection list のような、コレクションの一覧を表示するコマンドがありません。 おそらく、各コレクションの MANIFEST.json の version を見るしかないかと思います。 例: ansible.utils 2.4.0 の MANIFEST.json…

[Ansible] 設定項目やディレクティブ、コマンドのプションなどの索引ページ

たまたま見つけたのですが、Ansible の公式ドキュメント上に、設定項目やディレクティブ、コマンドのプションなどの索引ページがあることを知りました。 docs.ansible.com ざっと見てみて「こんなのあったっけ?」という新発見につながったりしそうな気がし…

[Ansible] 「つまずき Ansible 【Part34】ansible-core 2.11.0 の changelog を眺める」ふりかえり

はじめに 2021/05/01 に、YouTube Live で「つまずき Ansible 【Part34】ansible-core 2.11.0 の changelog を眺める」という配信をしました。 connpass.com 今回は、先日リリースされた ansible-core 2.11.0 の changelog の中で個人的に気になったところを…