Itérer des variables dans Ansible


Ge Fa

J'essaie d'utiliser le même ensemble de variables pour les différents modules de mon jeu (avec quelques légères variations comme vous le verrez).

Il me semblait logique de les inclure comme «vars» en haut de ma pièce, mais j'ai ensuite du mal à y faire référence plus tard. Jusqu'à présent, j'ai fait ceci:

- name: destruction instance sur GCP
  hosts: localhost
  gather_facts: no
  vars:
    gcp_project: ansible-test-248409
    gcp_cred_kind: serviceaccount
    gcp_cred_file: /google/service-accounts/ansible-test-248409-fbadc808948d.json
    zone: europe-west1-b
    region: europe-west1
    machine_type: n1-standard-1
    machines:
      - webserver-1
      - webserver-2
      - webserver-3
      - devops-1
      - devops-2    

  tasks:
    - name: destruction des machines
      gcp_compute_instance:
          name: "{{ machines }}"
          state: absent
          zone: "{{ zone }}"
          project: "{{ gcp_project }}"
          auth_kind: "{{ gcp_cred_kind }}"
          service_account_file: "{{ gcp_cred_file }}"
          scopes:
            - https://www.googleapis.com/auth/compute


    - name: destruction des disques
      gcp_compute_disk:
          name: "{{ machines }}-disk"
          state: absent
          zone: "{{ zone }}"
          project: "{{ gcp_project }}"
          auth_kind: "{{ gcp_cred_kind }}"
          service_account_file: "{{ gcp_cred_file }}"
          scopes:
            - https://www.googleapis.com/auth/compute

Ce qui me donne ce message d'erreur

[WARNING]: The value ['webserver-1', 'webserver-2', 'webserver-3', 'devops-1', 'devops-2'] (type list) in a string field was
converted to u"['webserver-1', 'webserver-2', 'webserver-3', 'devops-1', 'devops-2']" (type string). If this does not look like what
you expect, quote the entire value to ensure it does not change.
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Invalid JSON response with error: <HTML>\n<HEAD>\n<TITLE>Bad Request</TITLE
>\n</HEAD>\n<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n<H1>Bad Request</H1>\n<H2>Error 400</H2>\n</BODY>\n</HTML>\n"}

L'utilisation de «recherche» ou «requête» ne fonctionne pas non plus. Quelqu'un peut-il voir ce qui me manque?

sadok-f

vous utilisez l' with_items:option.

tasks:
- name: destruction des machines
  gcp_compute_instance:
      name: "{{ item }}"
      state: absent
      zone: "{{ zone }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
  with_items: "{{ machines }}"

Articles connexes


Libérer des variables C dans Golang?

Alasdair: Je ne sais pas quelles variables doivent être libérées si j'utilise des variables C dans Go. Par exemple, si je fais ceci: s := C.CString(`something`) Cette mémoire est-elle maintenant allouée jusqu'à ce que j'appelle C.free(unsafe.Pointer(s)),

Gérer des fichiers crontab entiers dans Ansible

Mais J'ai un crontab contenant environ 80 entrées sur un serveur. Et j'aimerais gérer ce crontab en utilisant Ansible. Idéalement, je copierais le crontab du serveur dans mon répertoire Ansible et créerais une tâche Ansible pour m'assurer que crontab est défin

Ansible: générer des variables en boucles

bruin Dans mon fichier de variables, je dois définir une variable de liste dont les éléments sont de modèle similaire et partager également des informations (redondantes). Au lieu de taper manuellement toutes ces informations, je voudrais générer la variable d

ansible - comment itérer des groupes d'enfants dans ansible?

makawana J'ai un fichier d'inventaire comme ci-dessous [ParentGroup] ChildrenGroup1 ChildrenGroup2 [ChildrenGroup1] hôte1 hôte2 hôte3 [ChildrenGroup2] hôte4 hôte5 hôte6 Maintenant, je veux réitérer les enfants sages. c'est-à-dire effectuer ma tâche en parallèl

Insérer des variables PHP dans jQuery

user5740843 J'ai donc trouvé ce diagramme à secteurs que j'aimerais utiliser sur mon site Web ( http://canvasjs.com/docs/charts/chart-types/html5-pie-chart/ ) J'ai déjà adapté le code à l'endroit où il établit une connexion à la base de données MySQL obtient l

Concaténer des variables dans ansible

BraveAdmin j'essaie de faire la tâche suivante : -name: Dump Server1 database to Server2 shell: 'mysqldump -h {{ server1_ip }} -u {{ mysql_user }} --protocol=tcp --password={{ mysql_passwd }} --single-transaction --set-gtid-purged=off {{server1_db}} table1

Passer des variables Ansible dans un module Ansible personnalisé

GreNIX J'ai un module personnalisé qui réside dans le library/répertoire de mon rôle Ansible. Je peux appeler le module depuis mon playbook, et le code s'exécute correctement, mais seulement si les valeurs qu'il attend sont codées en dur dans le code du module