dcos.dcos_requirements
Ansibleロール: Mesosphere DC/OS
RedHat/CentOS Linux上でDC/OSクラスタのライフサイクルを管理するAnsibleロールのセットです。
要件
これらのロールを最大限活用するためには、ノードがMesosphereの推奨するインフラのセットアップに似ている必要があります。セットアップに応じて、デプロイ先は以下のようになります。
- 1つ以上のマスターノード(「masters」)
- 1つのブートストラップノード(「bootstraps」)
- ゼロまたは複数のエージェントノード(公開サービス用の「agents_public」)
- 1つ以上のエージェントノード(非公開サービス用の「agents_private」)
例となるインベントリファイルが以下のように提供されています:
[bootstraps]
bootstrap1-dcos112s.example.com
[masters]
master1-dcos112s.example.com
master2-dcos112s.example.com
master3-dcos112s.example.com
[agents_private]
agent1-dcos112s.example.com
remoteagent1-dcos112s.example.com
[agents_public]
publicagent1-dcos112s.example.com
[agents:children]
agents_private
agents_public
[common:children]
bootstraps
masters
agents
agents_public
ロール変数
Mesosphere DC/OS Ansibleロールは、2つのタイプの変数を使用します。
- ノードタイプごとの
group_var
- すべてのノードで利用可能な多層辞書「dcos」
グループ変数
[bootstraps:vars]
node_type=bootstrap
[masters:vars]
node_type=master
dcos_legacy_node_type_name=master
[agents_private:vars]
node_type=agent
dcos_legacy_node_type_name=slave
[agents_public:vars]
node_type=agent_public
dcos_legacy_node_type_name=slave_public
グローバル変数
dcos:
download: "https://downloads.dcos.io/dcos/stable/1.13.4/dcos_generate_config.sh"
download_checksum: "sha256:a3d295de33ad55b10f5dc66c9594d9175a40f5aaec7734d664493968a9f751fd"
version: "1.13.4"
enterprise_dcos: false
selinux_mode: enforcing
config:
cluster_name: "examplecluster"
security: strict
bootstrap_url: http://int-bootstrap1-examplecluster.example.com:8080
exhibitor_storage_backend: static
master_discovery: static
master_list:
- 172.31.42.1
クラスター全体の変数
名前 | 必須 | 説明 |
---|---|---|
download | 必須 | Mesosphere DC/OSのインストール用ダウンロードURL(https) |
download_checksum | なし | ダウンロードをチェックするためのチェックサム。方法名が先頭に来る必要があります。例: "sha256: |
version | 必須 | インストーラー(download で指定された)がインストールするバージョンを反映するバージョン文字列。dcos_generate_config.sh --version を実行することで取得できます。 |
version_to_upgrade_from | アップグレード用 | アップグレード手順が期待するMesosphere DC/OSのバージョン文字列。ブートストラップマシン上に、各クラスターノードが現在稼働中のDC/OSバージョンに適切なアップグレードをダウンロードします。 |
image_commit | なし | 同じバージョン/同じ設定のアップグレードを強制するために使用できます。主にリリースされていないバージョンのデプロイ/アップグレードに便利です。例: 1.12-dev 。このパラメータはversion より優先されます。 |
enterprise_dcos | 必須 | インストーラー(download で指定された)がMesosphere DC/OSの「オープン」または「エンタープライズ」バージョンをインストールするかを指定します。これは、エンタープライズ専用コンポーネントに追加のアップグレード後チェックがあるため、必須です。 |
selinux_mode | 必須 | クラスターのノードが動作するOSのSELinuxモードを示します。Mesosphere DC/OSは1.12以降、enforcing モードでの運用をサポートします。古いバージョンではpermissive が必要です。 |
config | 必須 | 有効なMesosphere DC/OSのconfig.ymlを表すYAML構造。以下を参照してください。 |
DC/OS config.ymlのパラメータ
パラメータの全一覧については、公式のMesosphere DC/OS構成参考を参照してください。 このロールで使用されるいくつかのパラメータは、DC/OS config.ymlの外で特に重要です:
bootstrap_url
: http://あなたのブートストラップノード:8080を指す必要があります。内部で使用され、インストーラ/アップグレーダー用にバージョン固有のサブディレクトリを指すように便利に上書きされます。ip_detect_contents
: ユーザー提供のIP検出スクリプトを決定するために使用されます。組み込みの環境検出を上書きし、一般的なAWSおよび/またはオンプレミススクリプトを使用します。公式のMesosphere DC/OS ip-detect参照ip_detect_public_contents
: ユーザー提供の公開IP検出スクリプトを決定するために使用されます。組み込みの環境検出を上書きし、一般的なAWSおよび/またはオンプレミススクリプトを使用します。公式のMesosphere DC/OS ip-detect参照fault_domain_detect_contents
: ユーザー提供の障害ドメイン検出スクリプトを決定するために使用されます。組み込みの環境検出を上書きし、一般的なAWSおよび/またはオンプレミススクリプトを使用します。
Ansibleの辞書マージ動作の注意点
dcos
構成の階層構造により、複数の場所からの設定を結合する際に、Ansibleを'置換'ではなく'マージ'に設定する必要があります。
例
# ansible.cfg
hash_behaviour = merge
インタラクティブ使用時の安全対策: dcos_cluster_name_confirmed
これらのロールをインタラクティブに呼び出す際(例えば、オペレータのマシンから)、DCOS.bootstrap
ロールは、実行対象のクラスターの手動確認を必要とします。これは、意図しないアップグレードや設定変更を避けるための安全機構です。非インタラクティブなプレイでは、このステップをスキップするために変数を設定できます。例:
ansible-playbook -e 'dcos_cluster_name_confirmed=True' dcos.yml
例となるプレイブック
Mesosphere DC/OSは、複数のノードからなる複雑なシステムであり、完全なマルチノードクラスタを形成します。提供されているロールを使用するプレイブックにはいくつかの制約があります。
- 各グループがそのロールを実行する順序(例: まずブートストラップノード、その後マスター、次にエージェント)
- アップグレードの同時実行(例: マスターノードには
serial: 1
)
提供されているdcos.yml
プレイブックは、Mesosphere DC/OSのインストールおよびアップグレードにそのまま使用できます。
テスト済みのOSおよびMesosphere DC/OSバージョン
- CentOS 7、RHEL 7
- DC/OS 1.12、オープンおよびエンタープライズバージョンの両方
ライセンス
著者情報
このロールは、2018年にMesosphereのSREチームおよび他のチームによって作成され、複数の内部ツールおよび公にされていないAnsibleロールに基づいて開発されました。
Life cycle management of a Mesosphere DC/OS agent node. Part of a set of Ansible roles that manage DC/OS on RedHat/CentOS Linux.
ansible-galaxy install dcos.dcos_requirements