vmware.coreos-bootstrap

Statut de construction

IMPORTANT : après Ansible 2.1, l'astuce suivante n'est plus valable :

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

La bonne nouvelle est que ce n'est plus nécessaire non plus. Ce qui suit fonctionne maintenant et est compatible avec les anciennes et les nouvelles versions d'Ansible (et c'est plus simple) :

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

coreos-bootstrap

Pour exécuter Ansible efficacement, la machine cible doit avoir un interpréteur Python. Les machines CoreOS sont minimales et n'ont pas de version de Python intégrée. Pour contourner cette limitation, nous pouvons installer pypy, un interpréteur Python léger. Le rôle coreos-bootstrap installera pypy pour nous, et nous mettrons à jour notre fichier d'inventaire pour utiliser l'interpréteur Python installé.

Version actuelle : 0.6.3

installation

ansible-galaxy install vmware.coreos-bootstrap

Configurez votre projet

Contrairement à un rôle typique, vous devez configurer Ansible pour utiliser un interpréteur Python alternatif pour les hôtes CoreOS. Cela peut être fait en ajoutant un groupe coreos à votre fichier d'inventaire et en définissant les variables du groupe pour utiliser le nouvel interpréteur Python. De cette façon, vous pouvez utiliser Ansible pour gérer les hôtes CoreOS et non-CoreOS. Placez simplement chaque hôte ayant CoreOS dans le groupe d'inventaire coreos, et il utilisera automatiquement l'interpréteur Python spécifié.

[coreos]
host-01
host-02

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

Cela configurera Ansible pour utiliser l'interpréteur Python à /home/core/bin/python, qui sera créé par le rôle coreos-bootstrap.

Playbook de démarrage

Vous pouvez maintenant simplement ajouter ce qui suit à votre fichier de playbook et l'inclure dans votre site.yml afin qu'il s'exécute sur tous les hôtes du groupe coreos.

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

Assurez-vous que gather_facts est défini sur faux, sinon Ansible essaiera d'abord de rassembler des informations système en utilisant Python qui n'est pas encore installé !

Exemple de Playbook

Après le démarrage, vous pouvez utiliser Ansible comme d'habitude pour gérer les services système, installer des modules Python (via pip) et exécuter des conteneurs. Voici un exemple de base qui démarre le service etcd, installe le module docker-py puis utilise le module Ansible docker pour récupérer et démarrer un conteneur nginx de base.

- name: Exemple Nginx
  hosts: web
  tasks:
    - name: Démarrer etcd
      service: name=etcd.service state=started
      sudo: yes
      sudo_user: root

    - name: Installer docker-py
      pip: name=docker-py

    - name: tirer le conteneur
      raw: docker pull nginx:1.7.1

    - name: lancer le conteneur nginx
      docker:
        image="nginx:1.7.1"
        name="example-nginx"
        ports="8080:80"
        state=running

Licence

MIT

À propos du projet

CoreOS bootstrap

Installer
ansible-galaxy install vmware.coreos-bootstrap
Licence
mit
Téléchargements
9.8k
Propriétaire