ansible role registry¶
important : le rôle doit être correctement empaqueté en tant qu'archive tar.gz et le serveur HTTP local doit servir correctement ce fichier.
Voici les étapes pour empaqueter un rôle Ansible et le servir correctement via un serveur HTTP local :
Étape 1 : Empaqueter le rôle Ansible¶
-
Créer une archive tar.gz du rôle update_ubuntu :
cd roles_repository tar -czvf update_ubuntu-1.0.0.tar.gz update_ubuntuCela créera une archive
update_ubuntu-1.0.0.tar.gzcontenant le rôleupdate_ubuntu. -
Déplacer l'archive dans le répertoire du serveur HTTP :
mv update_ubuntu-1.0.0.tar.gz ../
Étape 2 : Servir l'archive via un serveur HTTP local¶
-
Lancer le serveur HTTP :
cd roles_repository python -m http.server 8000Cela lancera un serveur HTTP sur
http://localhost:8000.
Étape 3 : Configurer Ansible pour utiliser le serveur local¶
-
Configurer
ansible.cfg: Ajoutez ou modifiez le fichieransible.cfgpour inclure l'URL de votre serveur local.[galaxy] server_list = local_galaxy [galaxy_server.local_galaxy] url = http://localhost:8000/ -
Créer un fichier
requirements.yml: Spécifiez les rôles que vous souhaitez installer depuis votre serveur local.--- - src: http://localhost:8000/update_ubuntu-1.0.0.tar.gz version: 1.0.0
Étape 4 : Installer les rôles depuis le serveur local¶
- Installer les rôles : Utilisez
ansible-galaxy installpour installer les rôles depuis votre serveur local.ansible-galaxy install -r requirements.yml
Exemple complet¶
-
Structure du projet :
my-ansible-project/ ├── ansible.cfg ├── requirements.yml ├── site.yml └── inventory -
Contenu de
ansible.cfg:[galaxy] server_list = local_galaxy [galaxy_server.local_galaxy] url = http://localhost:8000/ -
Contenu de
requirements.yml:--- - src: http://localhost:8000/update_ubuntu-1.0.0.tar.gz version: 1.0.0 -
Contenu de
site.yml:--- - hosts: webservers roles: - update_ubuntu -
Contenu de
inventory:[webservers] server1.example.com server2.example.com -
Lancer le serveur HTTP :
cd roles_repository python -m http.server 8000 -
Installer les rôles :
ansible-galaxy install -r requirements.yml -
Exécuter le playbook :
ansible-playbook -i inventory site.yml
En suivant ces étapes, vous devriez être en mesure de créer un serveur de rôles local de type Ansible Galaxy et d'installer les rôles de votre projet depuis ce serveur en utilisant ansible-galaxy. Assurez-vous que l'archive tar.gz est correctement créée et servie par le serveur HTTP local.
exemple :
ansible-galaxy install -r requirements.yml
Starting galaxy role install process
- downloading role from http://localhost:8000/staticwebserver-1.0.0.tar.gz
- extracting staticwebserver-1.0.0 to /home/gwen/.ansible/roles/staticwebserver-1.0.0
- staticwebserver-1.0.0 (1.0.0) was installed successfully