abn.managed-node-bootstrap

マネージドノードブートストラップ

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

最小限の依存関係でAnsibleによって管理されるノードをブートストラップします。これは元々、ディストリビューションベースのDockerイメージのインスタンスをブートストラップするために書かれたもので、コンテナ以外の使用に対して安定するためには改善が必要な場合があります。

現在サポートされているディストリビューションは以下の通りです:

  1. Alpine Linux
  2. apt-getを使用するDebian系ディストリビューション(Ubuntu)
  3. OpenSUSE
  4. dnf/yumを使用するRed Hat系ディストリビューション(Red Hat Enterprise Linux、CentOS、Fedora)

要件

rawモジュールをサポートするAnsibleのバージョン以外には、追加の要件はありません。開発はAnsible 2.2以上で行われました。

ロール変数

このロールは、以下の設定を変数を通じてサポートしています。

  1. managed_node_bootstrap_use_sudo: 対象ホストにsudoがインストールされていて、非rootユーザーとして接続する場合は、これをyesに設定します。
  2. managed_node_bootstrap_cmd_prefix: managed_node_bootstrap_use_sudoが設定されている場合、デフォルトでsudoになります。このプレフィックスをオーバーライドして、実行されるすべてのコマンドに追加できるようにします。
  3. managed_node_bootstrap_done_file: ブートストラップタスクが以前に成功裏に実行されたかどうかを示すために使用するファイルを指定します。
  4. managed_node_packages_{alpine,debian,opensuse,redhat}: これらのディストリビューションファミリごとにインストールするパッケージのリストを設定するために使用されます。

依存関係

Ansible自体以外に依存関係はありません。

例プレイブック

インベントリ内のすべてのホストをブートストラップするために使用できる例です。Ansibleの接続方法などは、これとは別に設定する必要があります。また、これにはrootユーザーとして接続する必要があります。sudoがこれらのインスタンスで使用できないと仮定しています(Dockerイメージの仮定)。この動作を変更する方法については、上記を参照してください。

---
- name: ansibleで管理するノードをブートストラップ
  hosts: all
  gather_facts: False
  roles:
    - abn.molecule-node-bootstrap

テスト

テストの前に、必要なサブモジュールがクローンされていることを確認する必要があります。

git submodule update --init --recursive

ローカル環境

このロールは、MoleculeとDockerインスタンスを使用してテストを可能にします。Pythonがインストールされており、Dockerデーモンを実行している場合は、開発環境でローカルに実行できます。

# moleculeとdocker-pyの要件をインストール
pip install -r test-requirements.txt
molecule test

これは、デフォルトのMoleculeシナリオで設定された通りに、サポートされているディストリビューションのコンテナを立ち上げ、サンプルプレイブックを実行します。

Tox

このプロジェクトには、Moleculeを使用して複数のAnsibleバージョンに対して実行するように設定されたtoxもあります。これは、toxを使用して簡単に実行できます。

tox

詳細な使用方法については、Moleculeのドキュメントtoxのドキュメントを参照してください。

ライセンス

Apache License 2.0

プロジェクトについて

Bootstrap an ansible managed node with minimal dependencies

インストール
ansible-galaxy install abn.managed-node-bootstrap
ライセンス
apache-2.0
ダウンロード
73