Zeichnen Sie den Ablauf vom Mac zum Einrichten der Python-Umgebung mit Ansible auf der virtuellen Vagrant-Maschine auf.
Vorbereiten der virtuellen Maschine
Wechseln Sie in den Ordner (AnsTest), in dem Sie die Konfigurationsdatei der virtuellen Maschine ablegen möchten.
vagrant init ubuntu/trusty64
Eine Datei mit dem Namen `` `Vagrantfile``` wird erstellt. Öffnen Sie sie daher mit Ihrem bevorzugten Editor.
Kommentieren Sie `config.vm.network" private_network ", IP:" 192.168.33.10 "`
aus.
Erstellen Sie eine virtuelle Python-Umgebung auf dem Host
`mkvirtualenv ans --no-site-packages --python = (Python-Pfad)`
Geben Sie die Python 2.x-Serie an. Es scheint, dass die Python 3.x-Serie in Zukunft unterstützt wird.
Installation von Ansible
pip install ansible
Erstellen und Bereitstellen einer Inventardatei
Platzieren Sie es in `/ etc / ansible``` mit dem Namen`
hosts```` (optional).
Schreiben Sie den folgenden Inhalt. Geben Sie in [] den Namen ein, der später als Host im Playbook angegeben werden soll, und die IP-Adresse in der Zeile, die in der Vagrant-Datei auskommentiert ist.
[AnsTest]
192.168.33.10
Erstellen Sie ein Playbook
Der Inhalt wird später erklärt.
- hosts: AnsTest
become: yes
user: vagrant
tasks:
- name: Install essentials
apt: pkg={{ item }} update_cache=yes state=present
with_items:
- vim
- git
- build-essential
- libssl-dev
- zlib1g-dev
- libbz2-dev
- libreadline-dev
- libsqlite3-dev
- wget
- curl
- llvm
- libncurses5-dev
- libncursesw5-dev
- xz-utils
- name: Clone pyenv
become: yes
become_user: vagrant
git:
repo: https://github.com/yyuu/pyenv.git
dest: /home/vagrant/.pyenv
- name: Edit bash
become: yes
become_user: vagrant
blockinfile:
create: yes
dest: /home/vagrant/.bash_profile
content: |
# pyenv
export PYENV_ROOT=/home/vagrant/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"
- name: Install Pythons
become: yes
become_user: vagrant
shell: . /home/vagrant/.bash_profile && pyenv install -s 2.7.11 && pyenv install -s 3.5.1
ansible-playbook provision_vagrant.yml -k
Es gibt viele andere gute Artikel über das grundlegende Schreiben und die Verwendung des Moduls, daher werde ich nur darüber schreiben, wo ich bin.
- name:Name der Verarbeitung
(Modulname):(...)
(Details zur Modulausführung):(...)
- name:Name der Verarbeitung
(Modulname):(...)
(Details zur Modulausführung):(...)
(...)
In einigen Fällen wird jedoch `attribute = value
`neben den Modulnamen geschrieben, {{variable}} wird angewiesen, doppelte Anführungszeichen zu setzen oder nicht, und die Grammatik ist noch unbekannt.
Laufzeitbenutzer
Zuerst habe ich den Benutzer nicht angegeben und nur mit `Werden: Ja``` in der zweiten Zeile ausgeführt, aber später habe ich eine SSH-Verbindung mit`
vagrant ssh `` und
pyenv uninstall
hergestellt `` Als ich es versuchte, konnte ich es nicht löschen, weil ich keine Erlaubnis hatte.
Über Umgebungsvariablen
Das hat die meiste Zeit gedauert. Zuerst schrieb ich um den Pfad zu `.bashrc```, aber wenn ich ihn mit`
blockinfile usw. schreibe und zur nächsten Aufgabe gehe, [In einer anderen Shell starten](http: // qiita.com/FGtatsuro/items/2366c93131c47aef8dfe) , `` `pyenv install x.x.x
führt zu einem Fehler, wenn die in .bashrc geschriebenen Einstellungen nicht wiedergegeben werden.
Dann dachte ich, ich sollte es an Ort und Stelle lesen, damit ich es nicht zwingen kann, mit ". / Home / vagrant / .bashrc" zu lesen, und als Ergebnis von Versuch und Irrtum ist das Schreibziel ".bash_profile" Es kam zur Arbeit, indem es tat.
Die Hälfte meiner Ansible-Historie kämpfte um diese Umgebungsvariable ... this Ich brachte es zu dem Punkt, an dem es gezwungen war, sich zu bewegen. Für die Unterschiede zwischen .bashrc, .bash_profile usw. kann hier hilfreich sein.
Recommended Posts