itnok.is_ubuntu

is-ubuntu

ビルドステータス GitHubタグ Ansibleロール

ターゲットのUbuntuホストがコンテナか、またはローカルホストかを検出します。

実行されるステップは以下の通りです:

  • is_ubuntu_localhostファクトを設定
  • コンテナ内かどうかを確認
  • is_ubuntu_inside_containerファクトを設定
  • プロキシ設定があるかどうかを確認

:exclamation: 要件


特にありません。

:abcd: ロール変数


変数名 説明 デフォルト値
is_force_lookup カスタム追加ファクトが既に存在する場合、ルックアップは行われません。これにより、そのファクトを強制的に確認します。 no
is_test_url_list インターネット接続/アクセスをテストするためのURLのリスト []

特にありません。

:loudspeaker: ファクト


このロールは、他のロールやプレイブックで使用できる以下のファクトを作成します:

ファクト 説明
is_ubuntu_behind_proxy 現在のAnsibleロールが実行されたバージョンがタグ付けされています (このファクトは既に存在する場合、is_force_lookupyesに設定されない限り更新されません)
is_ubuntu_inside_container コンテナ内にいるときは真になります。これはPID 1がinitまたはsystemdでないときに発生します (このファクトは既に存在する場合、is_force_lookupyesに設定されない限り更新されません)
is_ubuntu_localhost ロールのターゲットマシンがlocalhostのときは真になります (このファクトは既に存在する場合、is_force_lookupyesに設定されない限り更新されません)
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 (詳細を読む)

プロジェクトについて

Detects whether the target Ubuntu host is... a container or eventually localhost (and more).

インストール
ansible-galaxy install itnok.is_ubuntu
ライセンス
mit
ダウンロード
6.8k
所有者