vmware.coreos-bootstrap

Build Status

WICHTIG: Nach Ansible 2.1 ist der folgende Trick nicht mehr gültig:

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

Die gute Nachricht ist, dass es auch nicht mehr nötig ist. Folgendes funktioniert jetzt und ist mit alten und neuen Ansible-Versionen kompatibel (und ist einfacher):

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

coreos-bootstrap

Um Ansible effektiv auszuführen, benötigt die Zielmaschine einen Python-Interpreter. CoreOS-Maschinen sind minimal und haben keine Python-Version vorinstalliert. Um dieses Problem zu umgehen, können wir pypy installieren, einen leichtgewichtigen Python-Interpreter. Die CoreOS-Boostrap-Rolle installiert Pypy für uns, und wir werden unsere Inventardatei so aktualisieren, dass sie den installierten Python-Interpreter verwendet.

Aktuelle Version: 0.6.3

Installation

ansible-galaxy install vmware.coreos-bootstrap

Konfigurieren Ihres Projekts

Im Gegensatz zu einer typischen Rolle müssen Sie Ansible so konfigurieren, dass ein alternativer Python-Interpreter für CoreOS-Hosts verwendet wird. Dies kann erreicht werden, indem Sie eine coreos-Gruppe zu Ihrer Inventardatei hinzufügen und die Variablen der Gruppe so einstellen, dass sie den neuen Python-Interpreter verwenden. Auf diese Weise können Sie Ansible verwenden, um CoreOS- und Nicht-CoreOS-Hosts zu verwalten. Fügen Sie einfach jeden Host, der CoreOS hat, in die Inventargruppe coreos ein, und es wird automatisch der angegebene Python-Interpreter verwendet.

[coreos]
host-01
host-02

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

Dies konfiguriert Ansible so, dass der Python-Interpreter unter /home/core/bin/python verwendet wird, der von der CoreOS-Boostrap-Rolle erstellt wird.

Bootstrap-Playbook

Jetzt können Sie einfach Folgendes zu Ihrer Playbook-Datei hinzufügen und es in Ihre site.yml aufnehmen, sodass es auf allen Hosts in der CoreOS-Gruppe ausgeführt wird.

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

Stellen Sie sicher, dass gather_facts auf false gesetzt ist, da Ansible sonst zuerst versucht, Systeminformationen mit Python zu sammeln, das noch nicht installiert ist!

Beispiel-Playbook

Nach dem Bootstrap können Sie Ansible wie gewohnt verwenden, um Systemdienste zu verwalten, Python-Module (über pip) zu installieren und Container auszuführen. Im Folgenden finden Sie ein einfaches Beispiel, das den etcd-Dienst startet, das docker-py-Modul installiert und dann das Ansible-Docker-Modul verwendet, um einen einfachen Nginx-Container herunterzuladen und zu starten.

- name: Nginx-Beispiel
  hosts: web
  tasks:
    - name: Start etcd
      service: name=etcd.service state=started
      sudo: yes
      sudo_user: root

    - name: Installiere docker-py
      pip: name=docker-py

    - name: Container ziehen
      raw: docker pull nginx:1.7.1

    - name: Starte Nginx-Container
      docker:
        image="nginx:1.7.1"
        name="example-nginx"
        ports="8080:80"
        state=running

Lizenz

MIT

Über das Projekt

CoreOS bootstrap

Installieren
ansible-galaxy install vmware.coreos-bootstrap
Lizenz
mit
Downloads
9.8k
Besitzer