Skip to content

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

  1. Créer une archive tar.gz du rôle update_ubuntu :

    cd roles_repository    tar -czvf update_ubuntu-1.0.0.tar.gz update_ubuntu
    

    Cela créera une archive update_ubuntu-1.0.0.tar.gz contenant le rôle update_ubuntu.

  2. 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

  1. Lancer le serveur HTTP :

    cd roles_repository
    python -m http.server 8000
    

    Cela lancera un serveur HTTP sur http://localhost:8000.

Étape 3 : Configurer Ansible pour utiliser le serveur local

  1. Configurer ansible.cfg : Ajoutez ou modifiez le fichier ansible.cfg pour inclure l'URL de votre serveur local.

    [galaxy]
    server_list = local_galaxy
    
    [galaxy_server.local_galaxy]
    url = http://localhost:8000/
    
  2. 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

  1. Installer les rôles : Utilisez ansible-galaxy install pour installer les rôles depuis votre serveur local.
    ansible-galaxy install -r requirements.yml
    

Exemple complet

  1. Structure du projet :

    my-ansible-project/
    ├── ansible.cfg
    ├── requirements.yml
    ├── site.yml
    └── inventory
    
  2. Contenu de ansible.cfg :

    [galaxy]
    server_list = local_galaxy
    
    [galaxy_server.local_galaxy]
    url = http://localhost:8000/
    
  3. Contenu de requirements.yml :

    ---
    - src: http://localhost:8000/update_ubuntu-1.0.0.tar.gz
      version: 1.0.0
    
  4. Contenu de site.yml :

    ---
    - hosts: webservers
      roles:
        - update_ubuntu
    
  5. Contenu de inventory :

    [webservers]
    server1.example.com
    server2.example.com
    
  6. Lancer le serveur HTTP :

    cd roles_repository
    python -m http.server 8000
    
  7. Installer les rôles :

    ansible-galaxy install -r requirements.yml
    
  8. 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