Module Ansible

Ce module Ansible permet d'authentifier avec Devolutions Server et de récupérer des informations sur le serveur, des coffres et des secrets.

Consulter notre GitHub pour en savoir plus sur le module Ansible pour Devolutions Server.

Caractéristiques

  • Authentifier avec Devolutions Server à l'aide d'identités d'application.

  • Obtenir des informations sur le serveur, des listes de coffres ou des secrets spécifiques.

  • Support flexible pour les secrets statiques ou pour obtenir tous les secrets dans un coffre.

Exigences

  • Ansible 2.18

  • Bibliothèque Python requests

  • Une identité d'application Devolutions Server (créer sur {your-dvls-url}/administration/applications).

    • L'application doit avoir les permissions pour obtenir les secrets souhaités.

export DVLS_APP_KEY="your_app_key_here"
export DVLS_APP_SECRET="your_app_secret_here"

Utilisation avec un fichier de secrets statiques

Exemple secrets.yml

Définir les secrets à extraire dans secrets.yml :

secrets:
  - secret_name: "my_secret_1"
  - secret_name: "my_secret_2"
  - secret_id: "12345678-1234-1234-1234-123456789012"

Exemple playbook.yml

Utiliser le playbook suivant pour s'authentifier avec Devolutions Server et extraire les secrets définis dans secrets.yml :

  vars_files:
    - secrets.yml
  tasks:
    - name: Fetch secrets
      devolutions.dvls.fetch_secrets:
        server_base_url: "https://example.yourcompany.com"
        app_key: ""
        app_secret: ""
        vault_id: "00000000-0000-0000-0000-000000000000"
        secrets: ""
      register: value

    - name: Dump secrets
      debug:
        msg: ""

    - name: Dump a secret
      debug:
        msg: ""

Utilisation pour extraire tous les secrets

Exemple playbook.yml utilisant un VaultID

Utiliser le playbook suivant pour s'authentifier avec Devolutions Server et extraire tous les secrets d'un VaultID défini :

  tasks:
    - name: Fetch secrets
      devolutions.dvls.fetch_secrets:
        server_base_url: "https://example.yourcompany.com"
        app_key: ""
        app_secret: ""
        vault_id: "00000000-0000-0000-0000-000000000000"
      register: value

    - name: Dump secrets
      debug:
        msg: ""

    - name: Dump a secret
      debug:
        msg: ""

Utilisation pour extraire des informations sur le serveur et la liste des coffres

---
- name: Fetch dvls server information
    server:
    server_base_url: "https://example.yourcompany.com"
    app_key: ""
    app_secret: ""
  register: value

- name: Fetch URI
  debug:
    msg: ""

- name: Fetch a vault from the list
  debug:
    msg: ""

Exemple de réponse

{
    "server": {
        "accessURI": "https://example.dvls-server.com/",
        "changed": false,
        "failed": false,
        "vaults": [
            {
                "description": "User vault for personal entries",
                "id": "123e4567-e89b-12d3-a456-426614174000",
                "type": "User"
            },
            {
                "description": "Shared vault for organization",
                "id": "987f6543-d21c-43ba-987f-123456789abc",
                "name": "Organization vault",
                "type": "Shared"
            }
        ],
        "version": "2025.1.0.0"
    }
}

Définition des secrets

Pour accéder à un champ particulier au sein d'un secret, utiliser le format ``. Voici un aperçu des catégories disponibles et de leurs champs :

Catégorie Champs
Nom d'utilisateur et mot de passe domain, password, username
Chaîne de connexion connectionString
Secret password
Clé API apiId, apiKey, tenantId
Clé SSH domain, password, privateKeyData, privateKeyOverridePassword, privateKeyPassPhrase, publicKeyData, username
Principal de service Azure clientId, clientSecret, tenantId

Exemple utilisant la valeur du secret

Par exemple, si vous souhaitez accéder à apiId depuis un API key secret, utiliser la syntaxe suivante :


Utilisation pour écrire des secrets

S'il y a déjà un secret existant à cet emplacement, il mettra à jour le secret. Sinon, une nouvelle entrée de secret sera créée. Lorsqu'un nouveau secret est créé ou mis à jour, le module retournera l'ID de l'entrée.

- name: Upload Credentials to DVLS
  devolutions.dvls.create_secret:
    server_base_url: "https://example.yourcompany.com"
    app_key: ""
    app_secret: ""
    vault_id: "00000000-0000-0000-0000-000000000000"
    secret:
      secret_name: "my_secret_1"
      value: "p@ssw0rd1"

Exemple avec des options supplémentaires disponibles (Actuellement, seul le type "Credential" et le sous-type "Default" sont pris en charge) :

- name: Upload Credentials to DVLS
  devolutions.dvls.create_secret:
    server_base_url: "https://example.yourcompany.com"
    app_key: ""
    app_secret: ""
    vault_id: "00000000-0000-0000-0000-000000000000"
    secret:
      secret_name: "my_secret_1"
      value: "p@ssw0rd1"
      secret_path: "path\\to\\folder"
      secret_type: "Credentials"
      secret_subtype: "Default"
      secret_description: "a description for the secret"
Devolutions Forum logo Partagez vos commentaires