Enregistrez le flux depuis Mac pour configurer l'environnement Python à l'aide d'Ansible sur la machine virtuelle Vagrant.
Préparation de la machine virtuelle
Accédez au dossier (AnsTest) dans lequel vous souhaitez placer le fichier de configuration de la machine virtuelle.
vagrant init ubuntu/trusty64
Un fichier appelé `` Vagrantfile '' sera créé, alors ouvrez-le avec votre éditeur préféré.
Décommentez config.vm.network "réseau_privé", ip: "192.168.33.10"
`.
Créez un environnement virtuel Python sur l'hôte
mkvirtualenv ans --no-site-packages --python = (chemin Python)
Spécifiez la série Python 2.x. Il semble que la série Python 3.x sera prise en charge à l'avenir.
Installation d'Ansible
pip install ansible
Création et déploiement d'un fichier d'inventaire
Placez-le dans `/ etc / ansible``` avec le nom`
hosts``` (facultatif).
Rédigez le contenu suivant. Dans [], entrez le nom à spécifier comme hôte dans le playbook plus tard, et l'adresse IP dans la ligne commentée dans le Vagrantfile.
[AnsTest]
192.168.33.10
Créez un playbook
Le contenu sera expliqué plus tard.
- 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
-k```. Sinon, vous risquez d'obtenir une erreur d'échec d'authentification. La valeur par défaut est `` vagrant ''.Il y a beaucoup d'autres bons articles sur l'écriture de base et comment utiliser le module, donc je n'écrirai que là où je suis.
- name:Nom du traitement
(Nom du module):(...)
(Détails d'exécution du module):(...)
- name:Nom du traitement
(Nom du module):(...)
(Détails d'exécution du module):(...)
(...)
Cependant, dans certains cas, ```attribute = value` `` est écrit à côté du nom du module, {{variable}} est dit ou non entre guillemets et la grammaire est encore inconnue.
Utilisateur d'exécution
Au début, je n'ai pas spécifié l'utilisateur et exécuté uniquement avec devenir: yes '' sur la deuxième ligne, mais plus tard j'ai fait une connexion SSH avec
vagrant ssh ''
et pyenv uninstall`
Quand j'ai essayé, je ne pouvais pas le supprimer car je n'avais pas la permission.
À propos des variables d'environnement
Cela a pris le plus de temps. Au début, j'ai écrit autour du chemin vers `.bashrc```, mais quand je l'écris avec`
`blockinfile etc. et que je passe à la tâche suivante, [Démarrer dans un autre shell](http: // qiita.com/FGtatsuro/items/2366c93131c47aef8dfe) , `` `` pyenv install x.x.x
entraînera une erreur lorsque les paramètres écrits dans .bashrc ne sont pas reflétés.
Alors j'ai pensé qu'il fallait le lire sur place, donc il n'est pas possible de le forcer à lire avec ``. / Home / vagrant / .bashrc``` Il est venu travailler en faisant.
La moitié de mon histoire Ansible se battait autour de cette variable d'environnement ... this Je l'ai amené au point où il a été forcé de bouger. Pour les différences entre .bashrc, .bash_profile, etc., ici peut être utile.
Recommended Posts