Bessonov.docker-swarm

AnsibleロールによるDocker Swarmクラスタのセットアップ

プロジェクトは ビルドステータス ライセンス

このロールは:

  • クラスタのブートストラップを行います
  • マネージャーとワーカーを管理します

実行は有限状態機械に基づいており、このロールは既存のクラスタを望ましい状態に変換できます。実行前に注意点を確認し、変換をテストしてください!

Dockerインストールについては、ansible docker roleを参照してください。

要件

Ansible 2.3以上およびDockerがインストールされていること。

注意点

マネージャーノードが変更される場合、少なくとも1つは各プlaybook実行の間は静的でなければなりません。例えば、manager-1をmanager-2に交換する場合:

  1. manager-2をマネージャーに追加します
  2. Playbookを実行します
  3. manager-1をマネージャーから削除します
  4. Playbookを実行します

Playbookでノードを降格または削除する方法:

  1. インベントリにノードを残します(以下の例を参照)
  2. Playbookを実行します
  3. クラスタに参加していないノードをインベントリから削除できます

例のPlaybook

グローバルにロールをインストールするには:

ansible-galaxy install Bessonov.docker-swarm

ローカルにインストールする場合:

ansible-galaxy install --roles-path roles Bessonov.docker-swarm

インベントリ(グループの名前は何でも選べます。removed-nodesは新しいクラスタにとってオプションです):

[managers]
node-1
node-2
node-3

[workers]
node-1
node-3
node-4

[removed-nodes]
node-5
node-6

Playbook:

# 既存のクラスタから削除または降格させるノードに関する情報を集める
- hosts: removed-nodes:workers
  tasks: []

# Dockerは事前にインストールされている必要があります
# Dockerインストール用の任意のロールを使用できます
- hosts: managers:workers
  roles:
    - role: Bessonov.docker

- hosts: managers
  # Docker CLIは同時アクセスをサポートしていません
  serial: 1
  roles:
    - role: Bessonov.docker-swarm
      swarm_worker_hosts: workers

      # オプション: デフォルトパラメーターを上書きします。`defaults/main.yml`を参照。
      swarm_cluster_bootstrap_parameters:
        --advertise-addr: enp0s8

ライセンス

MITライセンス (MIT)

著作権 (c) 2017, Anton Bessonov

このソフトウェアおよび関連するドキュメントファイル (以下「ソフトウェア」) のコピーを取得した者には、いかなる制限もなく、ソフトウェアを使用、コピー、改変、統合、公開、配布、サブライセンス及び/または販売することを許可します。ただし、以下の条件を遵守する必要があります:

上記の著作権表示およびこの許可表示は、ソフトウェアのすべてのコピーまたは重要な部分に含まれるものとします。

ソフトウェアは「現状のまま」提供され、いかなる種類の保証もありません。著者または著作権者は、契約、不法行為、その他いかなる方法による請求、損害、その他の責任についても責任を負いません。

プロジェクトについて

Setup and manage a docker swarm cluster

インストール
ansible-galaxy install Bessonov.docker-swarm
ライセンス
mit
ダウンロード
12k
所有者