AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1178056
Accepted
Prade
Prade
Asked: 2025-04-02 09:04:06 +0800 CST2025-04-02 09:04:06 +0800 CST 2025-04-02 09:04:06 +0800 CST

Loop Ansible enquanto com método Post

  • 772

Estou tentando rotacionar uma lista da linha de comando e passá-la para um método Post para o Servicenow usando o módulo Ansible URI. Estou muito perto, mas não consegui exatamente o que queria. Agradeceria se alguém pudesse me corrigir.

papel

  • adicionar_gerente
    • tarefas/main.yml
    • vars/ondemand_add.yml
  1. tarefas/main.yml
    - name: Submit API request to add managers
      uri:
        url: "{{ contacturl }}"
        headers: "{{ headers }}"
        user: "{{ key }}"
        password: "{{ secret }}"
        body: "{{ item }}"
        force_basic_auth: yes
        body_format: json
        method: POST
        status_code: 201
        validate_certs: false
      with_items: "{{ od_user }}"
      register: result
      changed_when: False
      failed_when: False
      ignore_errors: True
  1. vars/ondemand_add.yml
od_user:
  - cmdbRequest: "contactCreate"
    user: "{{ manager_id }}"
    servername: "{{ ansible_hostname }}"
    type: "Server Management"
    contactType: "Manager"

Meu comando de playbook é o seguinte

#ansible-playbook -i meuhost, -e '{"role": "add_manager", "manager_id ":['1234', '4567']}' -- top.yml

ansible
  • 1 1 respostas
  • 33 Views

1 respostas

  • Voted
  1. Best Answer
    Vladimir Botka
    2025-04-02T14:00:52+08:002025-04-02T14:00:52+08:00

    Há mais detalhes:

    1. Coloque o arquivo ondemand_add.yml no diretório vars/main . Caso contrário, ele não será reconhecido
    shell> tree roles/
    roles/
    └── add_manager
        ├── tasks
        │   └── main.yml
        └── vars
            └── main
                └── ondemand_add.yml
    
    1. Simplifique o código para teste. Itere subelementos
    shell> cat roles/add_manager/tasks/main.yml 
    - debug:
        msg: "user: {{ item.1 }}"
      loop: "{{ od_user | subelements('user') }}"
      loop_control:
        label: "{{ item.0.cmdbRequest }}"
    

    Crie o manual

    shell> cat top.yml 
    - hosts: localhost
    
      roles:
    
        - "{{ role }}"
    
    1. Coloque as variáveis ​​extras em um arquivo para evitar erros de sintaxe
    shell> cat extra-vars.yml 
    role: add_manager
    manager_id: [1234, 4567]
    

    Em seguida, execute o comando

    shell> ansible-playbook -e @extra-vars.yml top.yml
    

    dá

    PLAY [localhost] ****************************************************************************************************
    
    TASK [add_manager : debug] ******************************************************************************************
    ok: [localhost] => (item=contactCreate) => 
        msg: 'user: 1234'
    ok: [localhost] => (item=contactCreate) => 
        msg: 'user: 4567'
    
    PLAY RECAP **********************************************************************************************************
    localhost: ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
    
    • 2

relate perguntas

  • Ansible: Converter string em dicionário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve