サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
tekunabe.hatenablog.jp
はじめに EDA Controller では、Rulebook を実行するために Decision Environment(画面上の文言は "決定環境" )が必要です。実態は利用するコンテナイメージの指定です。Automation Controller が Playbook を実行するために、Execution Environment(EE、実行環境)が必要なのと同じような関係です。ansible.eda コレクションを含む標準的なものもありますが、ほかのコレクションを含めたいときなどではカスタム Decision Environment をビルドする必要があります。 本記事では、カスタムの Decision Environment のビルドを試したときのことをまとめます。やや試行錯誤も含まれます。 今回は環境の都合上、Rulebook のアクティベーションを作成できるところまでの簡単な動
はじめに Ansible のエラーメッセージは、改行のない JSON で表示されるため読みにくいという意見を見かけました。確かにデフォルトだとそうです。 Ansible は Playbook 実行結果をコールバックプラグインという仕組みで扱われます。いくつか種類があるのですが、たとえば、community.general.yaml コールバックプラグインを利用すると、改行付きのYAMLで表示されます。 Ansible output that can be quite a bit easier to read than the default JSON formatting. という説明があります。 簡単な実行結果を掲載します。 環境 ansible-core 2.14.1 community.general コレクション 6.1.0 [2023/04/24 追記] デフォルトのコールバック
いろいろな書き方ができる真偽値 たとえば Ansible の Playbook では、真偽値を指定する時に、true/false 、yes/no などいろいろな書き方ができてしまいます。 去年、Ansible のコミュニティでは、ドキュメント上どう統一するのがいいかの投票がありました。 ansbile のドキュメントにおけるにおける boolean は yes/no が遣われがちだったが、ansilbe-lint では true/false でないとエラーになる。どうしたもんでしょという issue。https://t.co/dcNl9R83sl— よこち (@akira6592) 2022年8月3日 github.com 現在 true/false への書き換えが進んでいます。yamllint のデフォルトでも true/false を正としています。 不都合 ただ統一感がなくて混乱する
EC2 インスタンス削除時に、自動でEBS ボリュームも削除されるつもりだったのにうっかり残っていた、という経験はありますでしょうか。 このようなとき、アタッチされていない EBS ボリュームの一覧を取得したいときがあるかもしれません(ありました)。 AWS CLI で調べるときのコマンドを控えておきます。 ボリュームの状態が available が「ボリュームはインスタンスにアタッチされていません」とのことなので、--filters オプションで status が available なものに絞った上で、 --query オプションで表示項目を調整することにします。 Name タグの値だけ表示したい場合 $ aws ec2 describe-volumes --filters Name=status,Values=available --query 'Volumes[*].Tags[?k
この記事は Ansible Advent Calendar 2022 23日目の記事です。 はじめに 2022年もAnsible関連で様々なリリースがありました。ansible-core や AAP も予定通りバージョンアップされてきました。 ansible-rulebook(developer preview)もインパクトがありました。ネットワーク的には paramiko から ansible-pylibssh へ以降するの流れがでてきました。 個人的にポイントだと思ったものをまとめます。 2021年版はこちら 2022年3月 ansible-lint 6.0.0 リリース ansible 2.9 のサポート終了 Python 3.6、3.7 のサポート終了 設定ファイル .config/ansible-lint.yml を読み込むように 検出だけなく一部修正も changelog Re
はじめに 前回の記事で、HashiCorp Vault の kv シークレットエンジンを使ってシークレットの登録をしました。 今回は、そのシークレットを Ansible から取得して表示したり、機器への接続パスワードに利用することを試します。 Ansible の community.hashi_vault.hashi_vault ルックアッププラグインを利用します。 少し紛らわしいかもしれませんが、Ansible Vaultとは直接は関係ありません。 環境 Vault v1.10.0 ansible 5.6.0 (ansible-core 2.12.4) community.hashi_vault コレクション 2.4.0 hashi_vault ルックアッププラグインは、もともとは community.general コレクションにありましたが、2.0.0 で削除されました Vault
はじめに 『インフフラ/ネットワークエンジニアのためのネットワーク「動作試験」入門』を読みました。とても良い本でした。 www.sbcr.jp Amazon.co.jp はこちら (電子版が試し読みできます) なかなか扱われることの少ない動作試験に絞った書籍であることと、「インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門 第2版」や「インフラ/ネットワークエンジニアのためのネットワーク・デザインパターン」など素晴らしい書籍の著者である、みやたひろしさんの書籍であるという点で、とてもたのしみにしていました。 ポートの状態などを確認する単体試験、機器を接続してルーティングなどを確認する結合試験、冗長機能が正常か確認する障害試験、ほか性能試験や長期安定試験について、考え方や手順などが書かれています。 初学者の頃に、現場の先輩に試験の方法を教えてもらい「こういうのありがたいなぁ。
はじめに 今作業しているマシンが、インターネットへ通信するときに、送信元IPアドレスが何になるか知りたいときはないでしょうか。 そんなときに私が使っているのが、https://ifconfig.io/ というサービスです。 以下の特徴があります。 curl ifconfig.io で単純に IPアドレスだけ返ってくる JSON に対応 IPv6 に対応 http / https 両対応 個人的に覚えやすいアドレス(主にこの理由で使っています) 使い方 ブラウザで https://ifconfig.io を開くと大体の使い方が分かります。 サクッと curl ifconfig.io 単純に IP アドレスだけ知りたときは curl ifconfig.io を実行します。一番良く使います。 $ curl ifconfig.io 203.0.113.1 IPv6 での通信の場合は、IPv6 アド
はじめに 先日、AWS CloudShell が利用できるようになりました。 aws.amazon.com www.publickey1.jp とても気軽に使えて良いなと思ったので Ansible をインストールして、AWS 上のリソースを操作できるか使えるか試してみました。 Playbook の実行、ad-hoc コマンドのの実行、ダイナミックインベントリを試しました。 クレデンシャルを別途設定しなくて良いのが AWS CloudShell ならではの特徴かと思います。 インストール Ansible はデフォルトでインストールされていないので、別途 pip でインストールする必要があります。 まず、venv を作成して有効にします。 python3 -m venv ansible source ansible/bin/activate 続いて、ansible と、AWS リソースの操作に
はじめに 最近、netbox-docker の README.md を見て知ったのですが、docker-compose.yml の内容を上書きする docker-compose.override.yml というファイルがあるそうです。 docker-compose.yml はそのままのこしておき、docker-compose.override.yml でカスタマイズするのに便利そうです。 公式ドキュメントにも記載がありました。 docs.docker.jp netbox-docker の README.md の例で試してみます。 docker-compose.yml 単品の場合 nginx を抜粋すると以下の通りです。 # nginx nginx: command: nginx -c /etc/netbox-nginx/nginx.conf image: nginx:1.19-alpine
これは Ansible Advent Calendar 2020 (Adventar版) の 14日目の記事です。 はじめに 現在、コミュニティ版としての 最新安定版は Ansible 2.10 系です。 もともとのロードマップでは、Ansible 2.10 系 の次は Ansible 2.11 系でした。ですが先月、2.10 系の次は 3.0.0 になる予定、との情報が入ってきまた。 [2021/04/27 追記] ansible-core 2.11 がリリースされました。こちらは Ansible Community Package の コアの位置するもので、ansible-base 2.10 の後継です。関係については公式ブログの記事をご参照ください。 簡単にですが、この記事では Ansible 3.0.0 のリリースについての情報をまとめます。 Ansible 3.0.0 ってなに?
はじめに 2020/05/09 に、YouTube Live で「BGP Unnumbered で遊んでみた」というお話させていただきました。 BGP Unnumbered は インターフェースや BGP ネイバーの IPアドレス設定が不要な BGP の設定方法です。 IPv6 や RFC 5549 の仕組みが活用されています。 初めて知ったのは、JANOG43 の「LINEのネットワークをゼロから再設計した話」を聞いたときでした。その後、Cloud Native Data Center Networking という書籍(ここから無料ダウンロードも可能)で Cumulus Linux での実装が掲載されるのを見て、おもしろそうだったので、ためしたうえで、紹介させていただきました。 こちらのブログにも各種リソースを掲載します。 動画 www.youtube.com 0:00 配信テストの趣旨
はじめに なんとなく興味を持って、業務としても携わっているネットワーク自動化ですが、なにをべんきょうすればよいの?と聞かれたときのために自分なりの方法をまとめておきます。 (ここにあげげたことをすべて私がマスターしているわけではありません・・) 関連情報にアンテナをはる 新しい情報はだいたい海外からくるので、海外の情報をメインにアンテナをはる。 Blog Developer - Cisco Blogs ipSpace.net blog « ipSpace.net blog slack networktocode http://slack.networktocode.com/ ネットワークの基礎を身につける 業務をシステム化するのには業務を知る必要があるように、ネットワーク自動化するためにはネットワークの基礎を知る必要がある。 知識としては、CCNA / CCNPやネットワークスペシャリスト
はじめに @ や などをURLエンコード(%40 や %20)したいと思い、Ansible の Filter のページ を参照しましたが、それらしいフィルターはありませでした。 ならばと思って、Jinja2 のドキュメントを見ると urlencode() というフィルターがありました。 この記事では簡単なサンプルで紹介します。 検証環境 Ansible 2.9.9 Jinja2 2.11.2 サンプル --- - hosts: localhost gather_facts: false tasks: - name: debug debug: msg: "{{ item | urlencode() }}" loop: - [email protected] - Hello World 実行 $ ansible-playbook -i locahost, urlencode.yml PLAY
先日購入したIntel NUC の NUC10I7FNH に、ESXi 7.0b をインストールしました。自分が行った手順を作業記録としてまとます。 【目次】 ■ カスタムイメージの作成(ESXi 7.0b + NIC ドライバ) 資材のダウンロード PowerCLI のインストール イメージの作成 ■ インストール用USBメモリの作成 ■ ESXi のインストール ■ 固定IPアドレスの設定 ■ ライセンスの割り当て ■ おわりに ■ カスタムイメージの作成(ESXi 7.0b + NIC ドライバ) NUC に ESXi をインストールするには、NICのドライバを追加したカスタムイメージが必要ということは事前に聞いていました。対応ドライバがないと、インストール序盤で NIC がないというエラーになるためです。 当初は ESXi 7.0 (bなし)ベースの、以下のページを参考にしてカスタ
はじめに set_fact モジュールは、Playbook 内のタスクとして、新たな変数を定義できるモジュールです。 便利といえば便利なのですが、プログラムでいう変数の代入のようなことをタスクで実現させるには、少々大げさに感じることがあります。 set_fact モジュールにしかできない変数の定義方法もありますが、簡単な定義であれば他の方法でも定義できます。 この記事では、他の方法を検討するためのポイントをご紹介します。 前提 (set_fact を利用する場合) 以下のような Playbook をベースに考えます。set_fact モジュールで、test_var 変数を定義し、その値を debug モジュールで表示するという簡単なものです。 - hosts: localhost gather_facts: no tasks: - name: set_fact set_fact: test
はじめに 2020/02/24 にシスコ認定技術者試験の制度が大きく改定されました。 それに伴い新しく始まった、ネットワーク自動化、プログラマビリティに関する資格である DevNet Associate Exam v1.0 (DEVASC 200-901) を受験して合格しました。 この記事では私の勉強方法や感想をまとめます。 ■ 勉強方法 試験範囲はこちらで確認できます。(PDF) https://www.cisco.com/c/dam/global/ja_jp/training-events/training-certifications/exam-topics/200-901-DEVASC.pdf Python、API、開発手法、自動化、セキュリティ、Git、Ansible(!)、ネットワーク基礎などなど、なかなか範囲は広いです。 勉強を始める前 勉強を始める前はこんな状態でした。目
はじめに 先日開催された「Ansibleもくもく会 ( サーバ編 ) 2019.12 in 札幌」に、リモートメンターとして参加させていただきました。 その際、参加者の方から以下のご質問をいただきました。 モジュールの数が多いためやりたいことに適したモジュールを探すのが大変です。よい方法はありますか? Ansible 2.9 現在で 3,000 モジュール以上あるので、たしかに大変な面はあると思います。 その場でもドキュメントに書いてお答えしたのですが、改めてブログとして3つまとめておきたいと思います。 特に裏技があるわけでもないですが・・・ ■ 方法1: 公式ドキュメントの Module Index のカテゴリから探す おそらく一番王道パターンだと思います。 公式ドキュメントには、以下のようにモジュールをカテゴリごとにまとめられています。ここから探す方法です。 docs.ansible.
■ はじめに Ansible のターゲットホストの情報を定義するインベントリファイルは、INI 形式の他にも YAML 形式でも定義できす。 この記事では、2つの例をとって ini と YAML を比較しながら YAML でのインベントリファイルの書き方を説明します。 動作確認環境 Ansible 2.7.8, 2.3.0 ■ 簡単な例 はずは簡単な例です。1つのグループに2つのホストが所属し、ホスト個別の変数、グループ共通の変数を定義します。 ini の場合 ini で書く場合は以下のような例です。 [junos] junos01 ansible_host=172.16.1.1 junos02 ansible_host=172.16.1.2 [junos:vars] ansible_network_os=junos ansible_connection=netconf ansible-i
はじめに Anislbe には、値を変換したり取り出したりする、さまざまなフィルター機能があります。 しかし、Playbook を書かく時、なかなか意図通りにフィルターできないこともあるのではないしょうか。 このようなときは、毎回 Playbook を実行するのも手間になり「とにかく手軽にフィルターを試行錯誤したい」と思うこともあると思います(私はあります)。 そんな時に便利な ansible-console コマンドの使い方をご紹介します。 なお、本来は ansible-console コマンドはフィルターの確認だけでなく、Plyabook と同じようにモジュールを実行できますが、この記事では特定用途に限って紹介をします。 動作確認環境: Ansible 2.8.5 ansible-console コマンドの使い方 以下、一連の流れです。 $ ansible-console -i loc
■ はじめに Ansible には、Playbook 実行時に予めどのような変更がせれるかを、実際に変更を加えることなくチェックできる、check モード (Dry-run)という機能があります。 これまでは、通常実行時も check モード実行時も、実行ログ上は特に変わりはありませんでした。 Ansible 2.9 から、デフォルトのコールバックプラグインに、check モードで実行されたタスクにのログに印を付けられるようになりました。 この記事では、簡単な例をもとにして説明します。 ■ 設定 ansible.cfg と環境変数の、2通りの設定方法があります。 ansible.cfg ansible.cfg で設定する場合は、[defaults] セクションに以下のように指定します。 [defaults] check_mode_markers = yes 環境変数 ansible.cfg
■ はじめに Ansible では、ターゲットノード(SSH接続先)で利用する Python を ansible_python_interpreter という変数で明示的に指定できます。 この変数は、インベントリ変数や host_vars の他にも、タスク変数としても指定できます。そのため、タスクごとにターゲットノードで利用する Python を切り替えられます。 この記事では、かんたんなサンプルでご紹介します。 動作確認環境 Ansible 2.8.4 CentosOS 7.6 (コントロールノード、ターゲットノード共通) Python 3 未インストール(ターゲットノード) /usr/bin/pyrhon は Python 2 ■ 検証サンプル ここでは、 yum モジュールが Python 2 のみの対応していること利用して検証します。 (いい方法が思いつきませんでした・・・) Pl
はじめに Visual Studio Code(以下、VS Code)で Ansible の Playbook を書く時に、私が便利に利用させてもらっている拡張をご紹介します。 「自分は Windows で VS Code 使ってて、Ansible は SSH 先の Linux だから関係ないや。」という方も、最後の「Remote Developement」まで見ていただけると幸いです。手元が Windows でも通用します。 動作確認環境: VS Code 1.38.1 その前に・・標準ではどんな感じに? VS Code では特に拡張を入れなくてもある程度は Playbook が書きやすいようになっています。 具体的には Playbook の拡張子を .yml または .yaml にするこことで、言語として YAML が選択されます。 これにより、シンタックスハイライトが効くようになり、
はじめに 開会宣言 2019/07/24-26 に兵庫県神戸市の神戸国際展示場で開催された JANOG44 Meeting in Kobe に参加、登壇してきました。 本ブログでは、2回に分けてレポートします。 その1 参加編(本記事) その2 登壇編 ここからはじめよう、運用自動化 その1である本記事では、参加した本会議の各プログラムの一覧と、いくつかピックアップして感じたことなどをまとめます。 togetter @goto_ipv6 さん ありがとうございます JANOG44 Meeting Day 1 #janog - Togetter JANOG44 Meeting Day 2 午前 #janog - Togetter JANOG44 Meeting Day 2 午後 #janog - Togetter JANOG44 Meeting Day 3 午前 #janog - Toget
■ はじめに Ansible には、テキストファイルを行単位で編集する lineinfile モジュール があります。httpd.conf などの設定ファイルの設定項目を書き換えるといった用途に利用できます。 この記事では、 lineinfile モジュールの公式ドキュメントに記載されている使用例をベースにして、使い方を説明します。 なお、公式ドキュメントの使用例は、Playbook 単位ではなくtask 単位で記載されています。この記事では Playbook 単位で例示します。 動作確認環境 Ansible 2.3.0, 2.7.8 CentOS 7.6 (Ansible 側、管理対象ホスト側とも) 目次 ■ はじめに 動作確認環境 目次 ■ 単純に行置換する Playbook 実行ログ ■ 行を削除する Playbook 実行ログ ■ マッチしなかった場合に挿入したい箇所を指定して挿入
■ はじめに Ansible には 環境変数を取得するための方法として、ansible_env 配下の変数を参照する方法と、 lookup("env", "hoge") のように loopkup プラグインを利用する方法があります。これらは性質が大きく異なります。 この記事では簡単な例で動作を確認します。 ■ 違いは? ansible_env.hoge lookup("env", "hoge") 取得場所 リモートホスト(ターゲット) ローカルホスト(ansible-playbookコマンド実行ホスト) 取得タイミング gather_facts: yes (デフォルト)などによる setup 実行時 参照時(のはず) 取得可能な環境変数 setup モジュールに依存 すべて ■ 動作確認 環境 ローカルホスト: centos7 (CentOS 7.6) リモートホスト1: target1
■ はじめに 2019/05/16 に Ansible 2.8.0 がリリースされました。多数のモジュールの追加や、機能追加、バグ修正、機能削除、機能の非推奨化、仕様変更が含まれています。 大きめなトピックとしては以下のものがあります。 Python のインタープリターを探索する Interpreter Discovery 機能の追加(日本語解説) 例えば、デフォルトで python コマンドがない RHEL8 などで活用 Ansible Collections と名前空間の実験的サポート この記事では、CHANGELOG や Porting Guide を中心に、気になった点と関連URLをまとめます。 特性が分かるように、主観ですが「便利」「地味に便利」「ちょっと注意」というタグのようなものをつけています。 また、★ 印があるものは、2019/05/31 開催予定の Ansible Ni
--clear オプションでクリア venv には、作成した仮想環境を初期状態にクリアする--clearオプションがあります。 python -m venv --help によるヘルプ表示抜粋 --clear Delete the contents of the environment directory if it already exists, before environment creation. activate している状態であれば、いったん deactivate したうえで、以下のように実行します。 python -m venv --clear 対象の仮想環境ディレクトリ python は python3 など、各環境に読み替えてください。 お試し 新しく仮想環境を作成し、パッケージをインストールし、クリアしたらそのパッケージがないことを確認します。 Python 3.7.1
■ はじめに VisualStudio Code (以下、VS Code)は Python の仮想環境 venv/vitualenv にも対応しています。特に設定で指定しなくても特定のディレクトリ配下の仮想環境を読み込みます。この記事ではそのパスの確認をします。 環境 macOS High Sierra 10.13.6 VS Code 1.30.1 Python 3.7.1 デフォルトで読み込まれるパス 以下の 4 箇所です。 設定 setting.json の python.venvFolders で指定されているデフォルト値 ~/envs 配下 ~/.pyenv 配下 ~/.direnv 配下 ワークスペースディレクトリ配下の .venv など(ディレクトリ名は任意) 参考 デフォルト設定 // Folders in your home directory to look into f
次のページ
このページを最初にブックマークしてみませんか?
『てくなべ (tekunabe)』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く