如何通过ansible playbooks多次读取用户输入

问题描述 投票:-1回答:1

我正在编写一个剧本来创建一个用户,如果它不存在。如果存在,则再次询问新用户名。它必须再次询问新的用户输入。但是var_promt只运行一次。我怎样才能做到这一点?

- name: An example prompting playbook
  hosts: all
  vars_prompt:
    - name: username
      prompt: "Enter a username"
  tasks:
    - name: Print out your input
      debug:
        msg: "You provided the {{ username }} for the  prompt"
    - name: User Exist
      command: grep {{ username }} /etc/passwd
      ignore_errors: yes
      register: user_exist
    - name: User Existance output
      debug: var=user_exist.stdout
    - name: User creation
      user: name={{ username }}
      when: user_exist.stdout is not match(".*:.*:.*:.*::.*:")
    - name: Display Message
      debug:
        msg: "User {{ username }} already exists"
      when: user_exist.stdout is match(".*:.*:.*:.*::.*:")
    - name: User check
      command: id {{ username }}
      ignore_errors: yes
      register: ID
    - name: UserID of Username
      debug: var=ID.stdout
ansible
1个回答
0
投票
  • name:提示playbook主机的示例:localhost vars_files: /root/users.yml任务: name:创建部署用户user:name:“{{item.name}}”shell:“{{item.shell}}”password:“{{lookup('password','/ tmp / {{item.name} } .txt chars = ascii_letters')| password_hash('sha512')}}“createhome:yes groups:”{{item.groups}}“update_password:on_create with_items:”{{users}}“
© www.soinside.com 2019 - 2024. All rights reserved.