vmware.coreos-bootstrap

Estado de Construcción

IMPORTANTE: después de ansible 2.1, el siguiente truco ya no es válido:

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

La buena noticia es que tampoco se necesita. Ahora lo siguiente funciona y es compatible con ansible antiguo y nuevo (y es más simple):

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

coreos-bootstrap

Para ejecutar ansible de manera efectiva, la máquina objetivo necesita tener un intérprete de python. Las máquinas CoreOS son mínimas y no incluyen ninguna versión de python. Para solucionar esta limitación, podemos instalar pypy, un intérprete de python liviano. El rol coreos-bootstrap instalará pypy por nosotros y actualizaremos nuestro archivo de inventario para usar el intérprete de python instalado.

Versión actual: 0.6.3

instalación

ansible-galaxy install vmware.coreos-bootstrap

Configura tu proyecto

A diferencia de un rol típico, necesitas configurar Ansible para usar un intérprete de python alternativo para los hosts CoreOS. Esto se puede hacer agregando un grupo coreos a tu archivo de inventario y configurando las variables del grupo para usar el nuevo intérprete de python. De esta manera, puedes usar ansible para gestionar hosts CoreOS y no CoreOS. Simplemente coloca cada host que tenga CoreOS en el grupo de inventario coreos y usará automáticamente el intérprete de python especificado.

[coreos]
host-01
host-02

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

Esto configurará ansible para usar el intérprete de python en /home/core/bin/python, que será creado por el rol coreos-bootstrap.

Playbook de Bootstrap

Ahora puedes simplemente agregar lo siguiente a tu archivo de playbook e incluirlo en tu site.yml para que se ejecute en todos los hosts del grupo coreos.

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

Asegúrate de que gather_facts esté configurado en falso, ¡de lo contrario, ansible intentará recopilar primero los datos del sistema usando python, que aún no está instalado!

Ejemplo de Playbook

Después del bootstrap, puedes usar ansible como de costumbre para gestionar servicios del sistema, instalar módulos de python (a través de pip) y ejecutar contenedores. A continuación, se muestra un ejemplo básico que inicia el servicio etcd, instala el módulo docker-py y luego utiliza el módulo docker de ansible para descargar e iniciar un contenedor básico de nginx.

- name: Ejemplo de Nginx
  hosts: web
  tasks:
    - name: Iniciar etcd
      service: name=etcd.service state=started
      sudo: yes
      sudo_user: root

    - name: Instalar docker-py
      pip: name=docker-py

    - name: descargar contenedor
      raw: docker pull nginx:1.7.1

    - name: lanzar contenedor nginx
      docker:
        image="nginx:1.7.1"
        name="example-nginx"
        ports="8080:80"
        state=running

Licencia

MIT

Acerca del proyecto

CoreOS bootstrap

Instalar
ansible-galaxy install vmware.coreos-bootstrap
Licencia
mit
Descargas
9.8k
Propietario