register
保存shell命令输出结果到一个变量中去
---
- hosts: testB
remote_user: root
tasks:
- name: test shell
shell: "echo test > /var/testshellfile"
register: testvar 注册定义变量
- name: shell module return values
debug:
var: testvar 必须为var
获取键值对
---
- hosts: testB
remote_user: root
tasks:
- name: test shell
shell: "echo test > /var/testshellfile"
register: testvar
- name: shell module return values
debug:
msg: "{{testvar.cmd}}"
---
- hosts: testB
remote_user: root
tasks:
- name: test shell
shell: "echo test > /var/testshellfile"
register: testvar
- name: shell module return values
debug:
msg: "{{testvar['cmd']}}"
vars_prompt
获取用户交互信息
---
- hosts: testB
remote_user: root
vars_prompt:
- name: "your_name" 第一个变量
prompt: "What is your name?" 提示输入信息 输入后存到变量里面
- name: "your_age" 第二个变量
prompt: "How old are you?"
tasks:
- name: output values
debug:
msg: Your name is {{your_name}},you are {{your_age}} years old.
让输入回显
---
- hosts: testB
remote_user: root
vars_prompt:
- name: "your_name"
prompt: "What is your name?"
private: no 非私有,可以看到
- name: "your_age"
prompt: "How old are you?"
private: no
tasks:
- name: output values
debug:
msg: Your name is {{your_name}},you are {{your_age}} years old.
设置默认值
---
- hosts: testB
remote_user: root
vars_prompt:
- name: "solution"
prompt: "Choose the solution you want \n
A: apple\n
B: banana\n
C: orige\n"
private: no
default: A
tasks:
- name: output vars
debug:
msg: Thi final solution is {{solution}}
默认选A
选择B
创建一个用户,并加入密码
---
- hosts: testB
remote_user: root
vars_prompt:
- name: "user"
prompt: "useradd"
private: no
- name: "password"
prompt: "passwordadd"
private: no
tasks:
- name: useradd
user:
name: "{{user}}"
password: "{{password}}"
上述还存在一个问题就是在playbook里面无法解决password加密问题
为了解决 进行如下操作
在ansible端
yum install wget -y
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxf setuptools-0.6c11.tar.gz
tar zxf pip-20.0.2.tar.gz
cd pip-20.0.2
python setup.py install
pip install passlib
在上面这个库的支持下,可以有sha1加密
---
- hosts: testB
remote_user: root
vars_prompt:
- name: "hash_string"
prompt: "Enter something"
private: no
encrypt: "sha512_crypt" 加密
tasks:
- name: output the string after hash
debug:
msg: "{{hash_string}}"
完善给用户密码的playbook
---
- hosts: testB
remote_user: root
vars_prompt:
- name: "user"
prompt: "useradd"
private: no
- name: "password"
prompt: "passwordadd"
encrypt: "sha512_crypt"
tasks:
- name: useradd
user:
name: "{{user}}"
password: "{{password}}"
重复输入密码
---
- hosts: testB
remote_user: root
vars_prompt:
- name: "user"
prompt: "useradd"
private: no
- name: "password"
prompt: "passwordadd"
encrypt: "sha512_crypt"
confirm: yes 重复
tasks:
- name: useradd
user:
name: "{{user}}"
password: "{{password}}"