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つのタイプの変数を使用します。

  1. ノードタイプごとのgroup_var
  2. すべてのノードで利用可能な多層辞書「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は、複数のノードからなる複雑なシステムであり、完全なマルチノードクラスタを形成します。提供されているロールを使用するプレイブックにはいくつかの制約があります。

  1. 各グループがそのロールを実行する順序(例: まずブートストラップノード、その後マスター、次にエージェント)
  2. アップグレードの同時実行(例: マスターノードにはserial: 1

提供されているdcos.ymlプレイブックは、Mesosphere DC/OSのインストールおよびアップグレードにそのまま使用できます。

テスト済みのOSおよびMesosphere DC/OSバージョン

  • CentOS 7、RHEL 7
  • DC/OS 1.12、オープンおよびエンタープライズバージョンの両方

ライセンス

Apache 2.0

著者情報

このロールは、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
ライセンス
Unknown
ダウンロード
135
所有者
Datacenter Operating System