Commit 06d7c6b5 authored by Thierry Fenasse's avatar Thierry Fenasse

virtualenv, requirements et gitignore

parent e8abc2d1
......@@ -15,28 +15,106 @@ Dossier de travail
J'ai créé un dossier Ansible dans ~/Documents pour y mettre mes futurs borls Ansibelèsque.
`$ mkdir -p ~/Documents/Ansible && cd "$_"`
```
$ mkdir -p ~/Documents/Ansible && cd "$_"
> $_is a special parameter that holds the last argument of the previous command. The quote around $_ make sure it works even if the folder name contains spaces. ([source](https://unix.stackexchange.com/questions/125385/combined-mkdir-and-cd) )
```
> $_ is a special parameter that holds the last argument of the previous command. The quote around $_ make sure it works even if the folder name contains spaces. ([source](https://unix.stackexchange.com/questions/125385/combined-mkdir-and-cd) )
J'y ai cloné (via https) le dépot ici présent qui à l'origine était vide mais j'ai suivi ce qui est proposé sur la page d'accueil de tout nouveaux dépot Gitlab ou Github.
J'y ai cloné le dépot ici présent qui à l'origine était vide mais j'ai suivi ce qui est proposé sur la page d'accueil de tout nouveaux dépot Gitlab ou Github.
```
git clone https://gitlab.domainepublic.net/tierce/decouverte-ansible.git
$ git clone git clone git@gitlab.domainepublic.net:tierce/decouverte-ansible.git
```
Ensuite je suis rentré dans le dossier de ce projet tout frais qui pour rappel se trouve dans `~/Documents/Ansible/` sur mon ordinateur et j'y ai édité le fichier README.md que vous êtes entrain de lire. Si si !
Ensuite je suis rentré dans le dossier de ce projet tout frais, qui pour rappel se trouve dans `~/Documents/Ansible/` sur mon ordinateur, et j'y ai édité le fichier README.md que vous êtes entrain de lire. Si si !
Cette édition du README.md peut se faire avec n'importe quel éditeur TEXTE de votre préférence.
```
cd decouverte-ansible
vi README.md
$ cd decouverte-ansible
$ vi README.md
```
Et pour renvoyer le travail accomplis vers le dépôt publique, voici les quelques commandes nécessaires.
```
$ git add README.md
$ git commit -m "ajout du README"
$ git push -u origin master
```
> Il faut refaire ce genre d'opération pour « pousser » une nouvelle version du projet vers un dépôt en ligne. Si besoin, il y a quelques infos sur Git [ici](https://gitlab.domainepublic.net/tierce/tutoriel-git#autres-ressources).
Installer Ansible
-----------------
Et pour renvoyer le travail accomplis jusqu'ici, voici ce qui git riquiert comme commande.
Python permet de créer un environnement de travail (un dossier) dans lequel se mettront les librairies requises par Ansible.
Ce dossier pourra être un dossier caché, commençant par un `.` pour ne pas le voir dans le projet.
```
git add README.md
git commit -m "ajout du README"
git push -u origin master
$ virtualenv .env # .env étant le nom du dossier que vous souhaitez créer.
```
Pour ce faire il faut créer un fichier contenant la liste des modules python avec lesquels travailler.
Je me suis basé sur [cette version](https://github.com/Neutrinet/infra/blob/04e41fc50f6c2f3ac57c827e664ba9677a5f28ff/requirements.txt) du fichier `requirements.txt` de Neutrinet.
```
$ cat << EOF > req.txt
> ansible==2.3.0.0
> appdirs==1.4.3
> asn1crypto==0.22.0
> cffi==1.10.0
> cryptography==1.8.1
> enum34==1.1.6
> idna==2.5
> ipaddress==1.0.18
> Jinja2==2.9.6
> MarkupSafe==1.0
> packaging==16.8
> paramiko==2.1.2
> pyasn1==0.2.3
> pycparser==2.17
> pycrypto==2.6.1
> pyparsing==2.2.0
> PyYAML==3.12
> six==1.10.0
> EOF
```
Voici une autre méthode pour créér ce fichier `requiements.txt`.
```
wget https://raw.githubusercontent.com/Neutrinet/infra/04e41fc50f6c2f3ac57c827e664ba9677a5f28ff/requirements.txt
```
Pour installer ces éléments c'est `pip` qui fera le travail. Cette étape pourrait générer des erreurs qui demanderont probablement d'installer des paquets supplémentaires dans votre ordinateur. Il faudra alors les identifier en fonction des erreurs qui `pip` vous donneront et les installer avec votre gestionnaire de paquet favoris. Par exemple `$ sudo apt install python-dev` ou `sudo apt install libffi-dev`.
`$ .env/bin/pip install -r requirements.txt`
À la fin de cette installation Ansible sera disponible et les quelques commandes suivantes devraient sortir quelques chose.
```
$ .env/bin/ansible --version
$ .env/bin/ansible --help
```
Parmis les binaires ansible disponibles, c'est avec `ansible` et surtout `ansible-playbook` que l'aventure commence!
```
$ ls -1 .env/bin/ansible*
.env/bin/ansible
.env/bin/ansible-connection
.env/bin/ansible-console
.env/bin/ansible-doc
.env/bin/ansible-galaxy
.env/bin/ansible-playbook
.env/bin/ansible-pull
.env/bin/ansible-vault
```
Un tutoriel en anglais
----------------------
Voici [ansible-tuto](https://github.com/leucos/ansible-tuto) qui propose une introduction intéressante à condition de disposer de [virtualbox](https://www.virtualbox.org/).
La suite bientôt…
ansible==2.3.0.0
appdirs==1.4.3
asn1crypto==0.22.0
cffi==1.10.0
cryptography==1.8.1
enum34==1.1.6
idna==2.5
ipaddress==1.0.18
Jinja2==2.9.6
MarkupSafe==1.0
packaging==16.8
paramiko==2.1.2
pyasn1==0.2.3
pycparser==2.17
pycrypto==2.6.1
pyparsing==2.2.0
PyYAML==3.12
six==1.10.0
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment