2016-06-01 7 views
0

ich verwende Python 3.4 und ansible 2.0 all meine ansible Aufgaben arbeiten i ordnungsgemäß von der KommandozeileWie ansible und ansible-Textbuch in Python laufen

hier eine einfache Aufgabe ist Ausführung:

- hosts: all 
    tasks: 
    - name: Install bind 
    yum: state=latest name=bind 

meine Host-Datei ist:

S1 ansible_host=server1.jackson.com ansible_user=root ansible_private_key_file=/home/jackson/Documents/ansible/virt_server.pem 
S2 ansible_host=server2.jackson.com ansible_user=root ansible_private_key_file=/home/jackson/Documents/ansible/virt_server.pem 

ich auf youtube Blogs gesucht und überall, aber keine Anleitung für ansible 2.X überall in tuto rials mit **ansible.runner**, aber in ansible 2.0 ist es nicht verfügbar.

Ich möchte nur ein Beispiel, das mich lehren, wie Hosts, ansible Konfigurationen, Aufgaben, Variablen definieren und wie Aufgaben ausgeführt werden können.

Zusätzlich möchte ich auch wissen, wie kann ich JSON anstelle von .yml-Datei verwenden, so dass ich Konfigurationsvariablen aus der Datenbank oder von Benutzereingaben abrufen kann, in alles in einem dynamischen Python-Skript sortieren.

Antwort

0

Ansible Docs bietet ein gutes Dokument für die Verwendung der Python-API für 2.0 und vor 2.0. Siehe http://docs.ansible.com/ansible/developing_api.html#python-api-2-0.

habe ich Probleme haben, die richtige Version von ansible immer mit der richtigen Version von Python zu laufen, aber Sie können virtualenv verwenden, um eine virtuelle Umgebung zu erstellen und installieren ansible pip aus dieser Umgebung verwendet wird, dann versuchen Sie einfach ansible zu importieren, um sicherzustellen, es funktioniert.

Es gibt Fälle, in denen JSON verwendet werden kann, aber die einfachere Lösung besteht darin, ein Skript zum Ändern von YAML in JSON zu verwenden.

Von http://yamltojson.com/#python:

import yaml 
import json 

yml = """ 
--- 
    foo: bar 
""" 
data = yaml.load(yml) 
json = json.dumps(data) 

print(json) 
+0

Vielen Dank für Hilfe @Theo –