Ansible vars_prompt用于角色

时间:2015-12-29 04:58:29

标签: ansible

我有一组Ansible个剧本,主要的yml文件就像这样

- hosts: all 
  roles:
    - common
    - install_nginx

我想在触发剧本时添加确认消息。我试过这个并没有用

- hosts: all
  vars_prompt:
    - name: CONFIRM
      prompt: Just to confirm you will install stuff
  tasks:
    - fail: no deployment this time
      when: CONFIRM != 'yes'
  roles:
    - common
    - install_nginx

如何在不修改每个vars_prompt的情况下使用role

3 个答案:

答案 0 :(得分:4)

如果您查看使用select P1.*, PA.AttrDesc from prod1 P1 left join ProdAttr PA on P1.ProdID = PA.ProdID where AttrID= 4 and AttrVal=68; 运行Playbook的输出,您会看到vars_prompt任务在其他角色之后运行。 Ansible docs for playbooks and roles

中也提到了这一点
  

如果游戏仍有“任务”部分,则执行这些任务   在角色应用之后。

由于上述文档还提到您是否要强制任务在任何角色之前运行,因此您可以使用fail

因此要获得确认样式提示,您只需执行此操作:

pre_tasks

答案 1 :(得分:1)

我不太确定,但其工作方式是:

- hosts: all

  vars_prompt:
    - name: "confirm"
      prompt: Just to confirm you will install stuff 
      private: no
      default: "no"
  tasks:
    - name: Install Nginx
      apt: name=nginx
      sudo: true 
      when:  confirm == "yes"

现在,如果我们需要根据条件调用每个角色,我想我们应该使用tags

答案 2 :(得分:0)

如何对角色使用Ansible vars_prompt

我获得了在角色角色部分使用vars_prompts的解决方案

我像以前一样直接将vars_prompt包含在main.yml剧本中

- hosts: "{{HOSTS}}"
  gather_facts: yes
  become: yes
  roles:
    - syslog
    - splunk
    - nmon
    - trendmicro
    - user-creation
    - extened-history
  vars_prompt:
    - name: "user_password"
      prompt: "Enter User Password"
      private: yes
      confirm: yes
==========================================================

下面是执行剧本的简单命令

# ansible-playbook ort-linux.yml -e "HOSTS=TESTSERVER"
Enter User Password:
confirm Enter User Password:

========================================================

下面是我用于创建用户ID的角色剧本

---
  - name: "Task-1 create Linux Team user"
    user:
     name: "{{item}}"
     comment: LINUX_UNIX_TEAM
     group: LINUX_UNIX_TEAM
     shell: /bin/bash
     generate_ssh_key: yes
     ssh_key_bits: 2048
     ssh_key_file: .ssh/id_rsa
     createhome: yes
     password: "{{user_password|password_hash('sha512')}}"

    loop:
     - sam
     - jack
     - kumar
     - ravi
    tags: linuxuser