vmware.coreos-bootstrap

ビルドステータス

重要:ansible 2.1以降、以下のトリックは無効です:

ansible_python_interpreter="PATH=/home/core/bin:$PATH python"

良いニュースは、それがもはや必要ないことです。次の方法が機能し、古いバージョンと新しいバージョンのansibleと互換性があります(しかも簡単です):

ansible_python_interpreter="/home/core/bin/python"

coreos-bootstrap

ansibleを効果的に実行するためには、ターゲットマシンにPythonインタープリタが必要です。CoreOSマシンはミニマルで、Pythonのバージョンを搭載していません。この制限を回避するために、軽量なPythonインタープリタであるpypyをインストールできます。coreos-bootstrapロールはpypyをインストールし、インストールしたPythonインタープリタを使用するようにインベントリファイルを更新します。

現在のバージョン:0.6.3

インストール

ansible-galaxy install vmware.coreos-bootstrap

プロジェクトの設定

通常のロールとは異なり、CoreOSホストで代替のPythonインタープリタを使用するようにAnsibleを設定する必要があります。これは、インベントリファイルにcoreosグループを追加し、そのグループの変数を新しいPythonインタープリタを使用するように設定することで行えます。このようにして、CoreOSホストと非CoreOSホストの管理にansibleを使用できます。CoreOSがインストールされているホストをすべてcoreosインベントリグループに入れるだけで、自動的に指定したPythonインタープリタが使用されます。

[coreos]
host-01
host-02

[coreos:vars]
ansible_ssh_user=core
ansible_python_interpreter="/home/core/bin/python"

これにより、coreos-bootstrapロールによって作成される/home/core/bin/pythonのPythonインタープリタを使用するようにansibleが設定されます。

ブートストラッププレイブック

次に、以下をプレイブックファイルに追加し、site.ymlに含めることで、coreosグループのすべてのホストで実行できます。

- hosts: coreos
  gather_facts: False
  roles:
    - vmware.coreos-bootstrap

gather_factsがfalseに設定されていることを確認してください。そうしないと、ansibleは最初にPythonを使用してシステム情報を収集しようとしますが、まだインストールされていません!

例プレイブック

ブートストラップ後は、ansibleを通常通り使用してシステムサービスの管理やPythonモジュール(pip経由)のインストール、コンテナの実行ができます。以下は、etcdサービスを開始し、docker-pyモジュールをインストールし、その後ansibleのdockerモジュールを使用して基本的なnginxコンテナをプルし、起動する基本例です。

- name: Nginxの例
  hosts: web
  tasks:
    - name: etcdを開始
      service: name=etcd.service state=started
      sudo: yes
      sudo_user: root

    - name: docker-pyをインストール
      pip: name=docker-py

    - name: コンテナをプル
      raw: docker pull nginx:1.7.1

    - name: nginxコンテナを起動
      docker:
        image="nginx:1.7.1"
        name="example-nginx"
        ports="8080:80"
        state=running

ライセンス

MIT

プロジェクトについて

CoreOS bootstrap

インストール
ansible-galaxy install vmware.coreos-bootstrap
ライセンス
mit
ダウンロード
9.8k
所有者