如何启动Ansible Playbook时覆盖循环变量创建临时用户
解决Ansible命令行临时创建单个用户的问题
方案思路
通过判断命令行是否传入username变量,动态切换循环使用的用户列表:
- 当命令行传入
username时,用该值构建单个用户的列表 - 未传入时,继续使用原
users变量列表
修改后的Playbook
- name: creation des users become: yes become_method: sudo become_user: root user: name: "{{ item.username }}" shell: /bin/bash groups: admin append: yes state: present password: "{{ 'some_password' | password_hash('sha512') }}" update_password: on_create with_items: "{{ target_users }}" register: createaccount vars: target_users: "{{ [{'username': username}] if username is defined else users }}"
变量文件(vars/main.yml)保持不变
# vars file for linux_users_saas_create users: - username: user1 - username: user2 - username: user3 - username: user4
执行命令
创建临时用户user5时,运行:
ansible-playbook -i inventory -e "username=user5"
如果要继续批量创建原列表用户,直接运行常规命令即可:
ansible-playbook -i inventory
内容的提问来源于stack exchange,提问作者Kain Taozia
相关产品推荐
相关产品推荐

