我正在尝试使用 ansible-pull 方法在剧本的运行时间上运行带有额外变量的剧本。
这就是我需要如何使用 vars 运行我的剧本的方式。
ansible-playbook decode.yml --extra-vars "host_name=xxxxxxx bind_password=xxxxxxxxx swap_disk=xxxxx"
bind_password 将具有管理员密码的编码值。我已经尝试在下面写剧本。
我能够调试每个值并正确获取它,但是在解码密码后没有得到确切的值或不确定我是否正确地执行它?
---
- name: Install and configure AD authentication
hosts: test
become: yes
become_user: root
vars:
hostname: "{{ host_name }}"
diskname: "{{ swap_disk }}"
password: "{{ bind_password }}"
tasks:
- name: Ansible prompt example.
debug:
msg: "{{ bind_password }}"
- name: Ansible prompt example.
debug:
msg: "{{ host_name }}"
- name: Ansible prompt example.
debug:
msg: "{{ swap_disk }}"
- name: Setup the hostname
command: hostnamectl set-hostname --static "{{ host_name }}"
- name: decode passwd
command: export passwd=$(echo "{{ bind_password }}" | base64 --decode)
- name: print decoded password
shell: echo "$passwd"
register: mypasswd
- name: debug decode value
debug:
msg: "{{ mypasswd }}"
但是虽然我们可以使用命令解码 base64 值:
echo "encodedvalue" | base64 --decode
我怎样才能用 ansible-pull 运行这个剧本。
后来我想将此剧本转换为角色(role1),然后需要按如下方式运行它:
我们如何使用 ansible-pull 运行基于角色的剧本?