itnok.is_ubuntu
is-ubuntu
ターゲットのUbuntuホストがコンテナか、またはローカルホストかを検出します。
実行されるステップは以下の通りです:
- is_ubuntu_localhostファクトを設定
- コンテナ内かどうかを確認
- is_ubuntu_inside_containerファクトを設定
- プロキシ設定があるかどうかを確認
:exclamation: 要件
特にありません。
:abcd: ロール変数
変数名 | 説明 | デフォルト値 |
---|---|---|
is_force_lookup |
カスタム追加ファクトが既に存在する場合、ルックアップは行われません。これにより、そのファクトを強制的に確認します。 | no |
is_test_url_list |
インターネット接続/アクセスをテストするためのURLのリスト | [] |
:link: 依存関係
特にありません。
:loudspeaker: ファクト
このロールは、他のロールやプレイブックで使用できる以下のファクトを作成します:
ファクト | 説明 |
---|---|
is_ubuntu_behind_proxy |
現在のAnsibleロールが実行されたバージョンがタグ付けされています (このファクトは既に存在する場合、is_force_lookup がyes に設定されない限り更新されません) |
is_ubuntu_inside_container |
コンテナ内にいるときは真になります。これはPID 1がinit またはsystemd でないときに発生します (このファクトは既に存在する場合、is_force_lookup がyes に設定されない限り更新されません) |
is_ubuntu_localhost |
ロールのターゲットマシンがlocalhost のときは真になります (このファクトは既に存在する場合、is_force_lookup がyes に設定されない限り更新されません) |
is_ubuntu_network_reachable |
is_test_url_list で渡されたすべてのURLが到達可能なときは真になります (デフォルトで/etc/apt/sources.list にあるすべてのURLも含まれます) |
is_ubuntu_url_reachable_list |
到達可能なすべてのURLのリスト |
is_ubuntu_url_unreachable_list |
到達不可能なすべてのURLのリスト |
:notebook: サンプルプレイブック
このロールをプレイブックで使用する方法の例です:
---
- hosts: servers
remote_user: ubuntu # オプション(リモートユーザー)
gather_facts: yes # オプション
roles:
- { role: itnok.is_ubuntu }
:microscope: テスト
このロールは、Moleculeを使用して機能を検証するためのテストをサポートしています。
Moleculeはロールを使用するために必要ではありませんが、ローカルインストールやCIでテストするためには必要です。 CIでのMoleculeの使用例は、このリポジトリのGitHub Actionsにあります。 Moleculeをインストールするには、Moleculeオンラインドキュメントの指示を参照してください。必要な依存関係が揃っていれば、次のように簡単に実行できます:
$ python3 -m pip install --user "molecule[ansible,docker,lint]"
テストは、目的のためにその場で構築されたコンテナ内で実行されます _(できるだけ一般的であることを目指しています)_。そのため、MoleculeにはDockerのインストールが必要です。Podmanを容器に対処するための代替手段とする場合、Moleculeをインストールするための必要なコマンドは以下のように変更すべきです:
$ python3 -m pip install --user "molecule[ansible,podman,lint]"
Podmanを使用するには、Moleculeで使用されるドライバをmolecule/default/molecule.yml
ファイルで以下のように変更する必要があります:行5-6は次のように変更します:
driver:
name: podman
すべてのテストは、フォーマット、リンティング、冪等性のチェックに加えて、次のコマンドで実行できます:
$ molecule test --parallel
(オプションの--parallel
オプションを使用してテストスイートを起動することは強く推奨されます。複数のターゲットコンテナでテストすることで、テスト実行時間が大幅に短縮されます!)
必要に応じて、追加のテストはmolecule/default/verify.yml
プレイブックに追加できます。
:guardsman: ライセンス
MIT (詳細を読む)