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. Чтобы обойти это ограничение, мы можем установить pypy, легковесный интерпретатор python. Роль coreos-bootstrap установит pypy для нас, а мы обновим наш файл инвентаризации, чтобы использовать установленный интерпретатор python.

Текущая версия: 0.6.3

Установка

ansible-galaxy install vmware.coreos-bootstrap

Настройте свой проект

В отличие от обычной роли, вам нужно настроить ansible для использования альтернативного интерпретатора python для хостов coreos. Это можно сделать, добавив группу coreos в ваш файл инвентаризации и установив переменные группы для использования нового интерпретатора python. Таким образом, вы можете использовать ansible для управления как CoreOS, так и не-CoreOS хостами. Просто поместите каждый хост с CoreOS в группу инвентаризации coreos, и он автоматически будет использовать указанный интерпретатор python.

[coreos]
host-01
host-02

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

Это настроит ansible для использования интерпретатора python по адресу /home/core/bin/python, который будет создан ролью coreos-bootstrap.

Bootstrap Playbook

Теперь вы можете просто добавить следующее в ваш файл playbook и включить его в ваш site.yml, чтобы он выполнялся на всех хостах в группе coreos.

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

Убедитесь, что gather_facts установлен в false, иначе ansible попытается сначала собрать системные факты с помощью python, который еще не установлен!

Пример Playbook

После bootstrap вы можете использовать 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/ansible-coreos-bootstrap
Лицензия
mit
Загрузки
8605
Владелец