Ansible には get_url というモジュールがあります。これは指定したURLを取得してターゲットホスト上に保存する機能をもち、ファイルのダウンロードなどに使われます。
似たようなモジュールでより汎用的なものとして uri があります。これはREST APIを叩いたり、WEBの動作確認など様々な使い方ができます。いわゆる curl コマンドのAnsibleモジュール版といっても良いでしょう。汎用HTTPリクエスト機能とも言いかえられるかもしれません。
このモジュールは shell などと同じく、冪等性を考慮していない汎用コマンド系なのでその点は注意が必要です。
公式のサンプルを少し見てみましょう。
-
このページの記事一覧
- 2018年12月11日火曜日 - uri モジュール
- - Assertモジュールによる「テスト、確認の自動化」とTAP(Test Anything Protocol)
- 2018年11月30日金曜日 - 手軽にAnsibleを試しながら勉強する方法
- 2018年2月4日日曜日 - Hyper-V (Win10) で Nested する
時刻:
12:44
Assertモジュールによる「テスト、確認の自動化」とTAP(Test Anything Protocol)
Tweet
本記事は以下の12日目の記事です。ノウハウの塊です。
https://qiita.com/advent-calendar/2018/ansibleblogger
こっちもおすすめです。
https://qiita.com/advent-calendar/2018/ansible
Ansibleの「自動化の確かさ」ををテストするノウハウも最近ちらほらと出始めました。
このあたりの記事はとても参考になります。
- コードとしてITインフラを定義する――自動化を超えた継続的改善の実現とは
- Molecule入門
- Ansible Playbook の CI をまわす
- GitLab CIでAnsibleの自作モジュールのCIをやってみる
Moleculeはとても良いです。Roleのテストの方向性が固まって来た感があります。インフラCI実践ガイドで取り上げたかったですが、執筆の構想をしたときにはそれほどメジャーではなかったので見送りました(入れておけばよかった・・・
インフラにおけるAnsibleのテストはこんな感じで整理できます。
(1)Role単品のテスト
(2)Roleを組み合わせときのテスト
(3)出来上がった結果を確認するテスト
(4)上記が時間経過や周辺環境の変更があっても動くのかを確認するテスト
(1)はMoleculeでほぼ十分です。(4)に関しては(1, 2, 3)に対してマトリックスを組んでのテストになります。
(2)は現状では少々悩ましいです。問題が出やすいところでもあります。特にチームで開発した場合には、単品のロールとしては完璧でも、組み合わせると矛盾がでるケースがあるからです。Moleculeだけでできるのかもうちょっと研究が必要。
(3)はインテグレーションテストやシステムテストに相当するテストです。ここはテストのシナリオを書いて、独自で実装する必要があります。いわゆるブラックボックステストとして非機能要件やシステムの振る舞いを確認する必要があります。
前置きは長くなりましたが、Ansibleでなにかを確認したいとき、そこで活躍するのが assert モジュールです。
https://docs.ansible.com/ansible/latest/modules/assert_module.html
https://qiita.com/advent-calendar/2018/ansibleblogger
こっちもおすすめです。
https://qiita.com/advent-calendar/2018/ansible
Ansibleの「自動化の確かさ」ををテストするノウハウも最近ちらほらと出始めました。
このあたりの記事はとても参考になります。
- コードとしてITインフラを定義する――自動化を超えた継続的改善の実現とは
- Molecule入門
- Ansible Playbook の CI をまわす
- GitLab CIでAnsibleの自作モジュールのCIをやってみる
Moleculeはとても良いです。Roleのテストの方向性が固まって来た感があります。インフラCI実践ガイドで取り上げたかったですが、執筆の構想をしたときにはそれほどメジャーではなかったので見送りました(入れておけばよかった・・・
インフラにおけるAnsibleのテストはこんな感じで整理できます。
(1)Role単品のテスト
(2)Roleを組み合わせときのテスト
(3)出来上がった結果を確認するテスト
(4)上記が時間経過や周辺環境の変更があっても動くのかを確認するテスト
(1)はMoleculeでほぼ十分です。(4)に関しては(1, 2, 3)に対してマトリックスを組んでのテストになります。
(2)は現状では少々悩ましいです。問題が出やすいところでもあります。特にチームで開発した場合には、単品のロールとしては完璧でも、組み合わせると矛盾がでるケースがあるからです。Moleculeだけでできるのかもうちょっと研究が必要。
(3)はインテグレーションテストやシステムテストに相当するテストです。ここはテストのシナリオを書いて、独自で実装する必要があります。いわゆるブラックボックステストとして非機能要件やシステムの振る舞いを確認する必要があります。
前置きは長くなりましたが、Ansibleでなにかを確認したいとき、そこで活躍するのが assert モジュールです。
https://docs.ansible.com/ansible/latest/modules/assert_module.html
手軽にAnsibleを試しながら勉強する方法
Tweet
Ansible Advent Calendar 2018 の1日目です。
最初に宣伝させてください。
Software Design 2018年12月号のAnsible特集に寄稿しました。Ansibleの入門からネットワーク機器管理、Tower/AWX、CIの触りまで幅広いテーマを扱っています。Ansible漫画も付属しているので、頑固な上司の机に忍ばせてAnsibleを理解させるたりと活用できると思います。
さて、Ansibleの勉強方法ですが、一番いいのは実際に手を動かすことです。書籍や記事もたくさんありますが、やはり手を動かして実際にAnsibleを動かしてみると、何ができて何ができないのか、Ansibleで自動化するために何をする必要があるのかを実感することができます。その後で様々な書籍や記事で基礎固めや実践的な知識を入手するのが良い方法です。
しかし、Ansible自身のインストールは簡単なのですが、実際に動かすためには自動化の対象となるノードを準備したりとやや手間がかかるのも事実です。
ということで、もっと簡単にAnsibleを体験してもらうために、ブラウザだけあればAnsibleがいろいろ試せる環境をKatacoda上に作成しました。Katacodaは受講者がブラウザだけで完結するハンズオンコースを実装できるSaaSサービスです。特にコンテナ関連のコースが充実しており、ここ最近注目を集めております。自分でコースを実装することも可能ですので、そちらを利用してAnsibleの入門コースを作成してみましたので使ってみてください。
最初に宣伝させてください。
Software Design 2018年12月号のAnsible特集に寄稿しました。Ansibleの入門からネットワーク機器管理、Tower/AWX、CIの触りまで幅広いテーマを扱っています。Ansible漫画も付属しているので、頑固な上司の机に忍ばせてAnsibleを理解させるたりと活用できると思います。
さて、Ansibleの勉強方法ですが、一番いいのは実際に手を動かすことです。書籍や記事もたくさんありますが、やはり手を動かして実際にAnsibleを動かしてみると、何ができて何ができないのか、Ansibleで自動化するために何をする必要があるのかを実感することができます。その後で様々な書籍や記事で基礎固めや実践的な知識を入手するのが良い方法です。
しかし、Ansible自身のインストールは簡単なのですが、実際に動かすためには自動化の対象となるノードを準備したりとやや手間がかかるのも事実です。
ということで、もっと簡単にAnsibleを体験してもらうために、ブラウザだけあればAnsibleがいろいろ試せる環境をKatacoda上に作成しました。Katacodaは受講者がブラウザだけで完結するハンズオンコースを実装できるSaaSサービスです。特にコンテナ関連のコースが充実しており、ここ最近注目を集めております。自分でコースを実装することも可能ですので、そちらを利用してAnsibleの入門コースを作成してみましたので使ってみてください。
Hyper-V (Win10) で Nested する
Tweet
意味のわからないタイトルですが、ようは kvm on CentOS on hyper-v とか、virtualbox on windows on hyper-v とかをします。
ここを参考。
https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization
1. Hypter-V を有効にして仮想マシンを作成する
2. 起動する前に、PowerShellを管理者モードで起動して以下を実行
<vmname> のところには自分がつけた仮想マシンの名前を入れます。
以上。簡単ですね。
以下の画像は 母艦のWin10上の Hyper-V で CentOS7 を起動して、その CentOS の中で VirtualBox(vagrant) を起動しています。
ここを参考。
https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization
1. Hypter-V を有効にして仮想マシンを作成する
2. 起動する前に、PowerShellを管理者モードで起動して以下を実行
Set-VMProcessor -VMName <vmname> -ExposeVirtualizationExtensions $true
<vmname> のところには自分がつけた仮想マシンの名前を入れます。
以上。簡単ですね。
以下の画像は 母艦のWin10上の Hyper-V で CentOS7 を起動して、その CentOS の中で VirtualBox(vagrant) を起動しています。
登録:
投稿 (Atom)