刚刚开始学ansible ,先来一个在被控端添加用户,
先看yml的编写
root@ubuntu-25:~/ansible_playbook/Creat_User# cat user.yml
---
- name: Create user
hosts: all
user: root
gather_facts: false
vars:
- user: 'test'
tasks:
- name: create user
user: name={{ user }}
× 第一个name是Playbook的名称,在使用ansible-playbook执行这个yml文件是会显示出来
× hosts 指要在那些主机上执行yml文件的操作
× user 指在被控端执行操作的用户
× gather_facts 参数指定了在以下任务部分执行前,是否先执行setup模块获取主机相关信息
× vars定义变量,方便后面的操作,定义了 user变量,值为 test
× tasks 任务,playbook会执行的操作
-name 这个name 是任务的名称,在执行的时候也可以看到
-user 执行任务的模块, name={{ user }} 这里调用了上面定义的变量 user
执行
root@ubuntu-25:~/ansible_playbook/Creat_User# ansible-playbook user.yml PLAY [Create user] ********************************************************************************************************** TASK [create user] ********************************************************************************************************** changed: [192.168.137.20] changed: [192.168.137.21] PLAY RECAP ****************************************************************************************************************** 192.168.137.20 : ok=1 changed=1 unreachable=0 failed=0 192.168.137.21 : ok=1 changed=1 unreachable=0 failed=0
这样在被控端机已经添加了一个用户 test。
删除一个用户
---
- name: Create user
hosts: all
user: root
gather_facts: false
vars:
user: "test"
tasks:
- name: create user
user:
name: "{{ user }}"
state: absent
remove: yes
然后再执行
root@ubuntu-25:~/ansible_playbook/Creat_User# ansible-playbook user.yml PLAY [Create user] *********************************************************************************************************************************************************************************** TASK [create user] *********************************************************************************************************************************************************************************** changed: [192.168.137.21] changed: [192.168.137.20] PLAY RECAP ******************************************************************************************************************************************************************************************* 192.168.137.20 : ok=1 changed=1 unreachable=0 failed=0 192.168.137.21 : ok=1 changed=1 unreachable=0 failed=0
##在添加用户的时候,我们也可以加上组,密码等一些属性
---
- name: Create user
hosts: all
user: root
gather_facts: false
vars:
user: "cong"
tasks:
- name: create user
user:
name: "{{ user }}"
# state: absent
# remove: yes
shell: /bin/bash
groups: tomcat7
append: yes
password: "$6$LQkaz55d$SlpjJTIhUit168YuPfUhAwNCHVGiLbXtfZdv1YWEd7Ukt.76CRls.Jd9pH0tSSZwPoVv3XjTaU29RRzJIu5QW."
× password 是经过加密的密码,是经过linux加密的方式
执行
root@ubuntu-25:~/ansible_playbook/Creat_User# ansible-playbook user.yml PLAY [Create user] ************************************************************************************************************************************************************************************** TASK [create user] ************************************************************************************************************************************************************************************** fatal: [192.168.137.20]: FAILED! => {"changed": false, "failed": true, "msg": "Group tomcat7 does not exist"} changed: [192.168.137.21] to retry, use: --limit @/root/ansible_playbook/Creat_User/user.retry PLAY RECAP ********************************************************************************************************************************************************************************************** 192.168.137.20 : ok=0 changed=0 unreachable=0 failed=1 192.168.137.21 : ok=1 changed=1 unreachable=0 failed=0
##因为192.168.137.20 没有tomcat7的组,所以添加用户失败
我们可以使用 ansible-doc user 命令查看user模块的使用方法
root@ubuntu-25:~/ansible_playbook/Creat_User# ansible-doc user