Es ist viel praktischer geworden (mein Schreibstil ist älter) als die alte Version, also ein Memo, als ich die Verwaltung meiner Punktedatei auf ansible umstellte und verschiedene Dinge ausprobierte
Bei Betrachtung verschiedener Repositorys scheint ansible mit verschiedenen Verzeichnisstrukturen geschrieben zu sein, aber das offizielle Dokument [Verzeichnislayout](http://docs.ansible.com/ansible/playbooks_best_practices.html#directory- Da es im Layout beschrieben ist, schreiben (oder zielen) wir mit einer Verzeichnisstruktur, die darauf verweist
Es gibt verschiedene Probleme, die nicht allein durch Module gelöst werden können.
Obwohl in beschrieben
Wenn es sich um ein Playbook handelt, das Sie geschrieben haben, ist dies eine Änderung, über die Sie sich keine Sorgen machen müssen. Sie können sofort beurteilen, indem Sie sich das Ausführungsergebnis von ansible ansehen. Wenn Sie jedoch eine Änderung erhalten, wenn jemand anderes dieses Spielbuch ausführt, werden Sie sich fragen: "Oh, etwas hat sich geändert?" Ich halte es für wünschenswert, dass Änderungen nur geändert werden, wenn sich das Verhalten des Zielbetriebssystems ändert.
Andernfalls wird eine Änderung unheimlich und es wird unmöglich, allgemeine Aufgaben in Produktion, Inszenierung, Entwicklung usw. zu schreiben, und der Prozess der Erledigung von Aufgaben gemäß jeder Umgebung beginnt. Zu diesem Zeitpunkt sollte die "geheime Sauce" ziemlich weit fortgeschritten sein. Ich habe das Gefühl, ich weiß nicht, wofür es ist.
Es ist eine schnelle Geschichte, aber von geändert_wenn [wann](http: //docs.ansible. com / ansible / playbooks_error_handling.html # Steuern-was-definiert-Fehler) fühlt sich beim Ausführen von Playbooks oft schneller an (Vielleicht hat chaged_when das Gefühl, dass es eine Aktion und dann eine Wann-Entscheidung macht. Es tut mir leid, wenn es falsch ist.)
`hinzu, wenn:" ansible_os_family == '{uname}' "`
Wenn Sie beispielsweise das Zielbetriebssystem beim Schreiben der Aufgabe zur Installation von nkf auf OSX beschränken, würden Sie folgendermaßen schreiben
roles/nkf/install/tasks/main.yml
- name: Install the nkf from homebrew
homebrew: name=nkf state=present
Aber nkf ist auch für das Gastbetriebssystem notwendig, oder? Wenn Sie dies so schreiben, dass Sie in diesem Fall keine nutzlosen Rollen erstellen, können Sie den gleichen Vorgang für verschiedene Betriebssysteme mit einer Rolle garantieren.
roles/nkf/install/tasks/main.yml
- name: Install the nkf from homebrew
homebrew: name=nkf state=present
when: "ansible_os_family == 'Darwin'"
- name: Install the nkf from yum
yum: pkg=nkf state=present
when: "ansible_os_family == 'RedHat'"
Es gibt ignore_errors, da Sie es ignorieren können, selbst wenn ein Fehler auftritt.
"widerlich····"
Wenn beim Ausführen des Playbooks "ignore_errors" auftritt, wird "failed" auf dem Display angezeigt.
Auf der Konsole wird etwas Rotes angezeigt, auch wenn es nicht ansibel ist.
Was Sie mit ignore_errors tun möchten, ist, fail zu ignorieren. Wenn Sie es also ignorieren, verursachen Sie keinen Fail
failed_when: no
Lass uns schreiben. Auf diese Weise werden Sie auf der Konsole nicht ausgefallen.
Beispielsweise ist Chrome erforderlich, wenn chrome-cli installiert wird, das Chrome mit CUI betreibt.
Die Art und Weise, die Aufgabe in diesem Fall zu schreiben, ist wie folgt
roles/homebrew/brew/chrome-cli/tasks/main.yml
- name: Install the chrome-cli in the brew.
homebrew: name=chrome-cli state=present
when: "ansible_os_family == 'Darwin'"
Installieren Sie einfach Chrome-Cli mit Homebrew
roles/homebrew/brew-cask/google-chrome/tasks/main.yml
- name: Install the google-chrome in the brew-cask
homebrew_cask: name=google-chrome state=present
when: "ansible_os_family == 'Darwin'"
Installieren Sie einfach Google-Chrome mit Homebrew-Fass
homebrew/brew/chrome-cli/meta/main.yml
dependencies:
- { role: homebrew/brew-cask/google-chrome }
chrome-cli
├── meta
│ └── main.yml
└── tasks
└── main.yml
google-chrome
└── tasks
└── main.yml
Schreiben Sie zwei Rollen und beschreiben Sie die Abhängigkeiten in Meta
Wie der Titel schon sagt. Für persönliches Memo
Ich vergesse das oft auch und schaue mir oft die Dokumentation des Ansible-Moduls an, also mein eigenes Memo
Wenn Sie sich die obigen [Beispiele] ansehen (http://docs.ansible.com/ansible/stat_module.html#examples), können Sie die meisten Dinge tun.
Ich werde es hinzufügen, wenn es einen zusätzlichen Hinweis gibt.
Recommended Posts