Ansible-playbook

首先简单说明一下playbook,playbook是什么呢?
```
根本上说playbook和shell脚本没有任何的区别,playbook就像shell一样,也是把一堆的命令组合起来,然后加入对应条件判断等等,在shell脚本中是一条一条的命令,而在playbook中是一个一个的task任务构成,每个task任务可以看做shell中的一条命令;shell脚本一般只是在当前服务器上执行,而playbook则是在不止一个服务器上执行,因此playbook需要在其中指定运行该playbook的服务器名。

playbooks基础组件

Hosts:运行执行任务(task)的目标主机

remote_user:在远程主机上执行任务的用户

tasks:任务列表

handlers:任务,与tasks不同的是只有在接受到通知时才会被触发

templates:使用模板语言的文本文件

variables:变量,变量替换

playbooks中tasks语法使用
file: 操作文件,比如创建文件或目录、删除文件或目录、修改文件权限等
常用参数:
path:指定要操作的文件或目录
state:参数非常灵活,可以包含的值及含义如下
directory - 与path结合说明我们要操作的是一个目录
touch - 与path结合说明我们要操作的是一个文件
link - 创建软连接
hard - 创建硬链接
absent - 删除目标
src:当state设置为link或hard创建链接时,用于说明链接哪个文件,指定链接源
force:值为yes表示强制创建
owner:指定被操作文件的属主
group:指定被操作文件的属组
mode:指定被操作文件的权限

playbook的使用
执行一个创建用户的命令
```
[root@localhost playbook]# vim user.yml 
[root@localhost playbook]# cat user.yml 
---         //开始标记
- name: user    //任务名字  
  hosts: 192.168.145.163    //指定需要执行的主机和组   
  tasks:            //任务
    - name: create user for zs      //任务名字
      user:     //指定模块
        name: zs    //用户名字
        uid: 6100   //用户uid
        state: present  //用户状态
...     //结束标记

运行playbook
[root@ansible ansible]# ansible-playbook playbook/user.yml

PLAY [user] ********************************************************************

TASK [Gathering Facts] *********************************************************
ok: [192.168.145.163]

TASK [create user for zs] *****************************************************
changed: [192.168.145.163]

PLAY RECAP *********************************************************************
192.168.145.163              : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

 

 

posted @ 2021-07-21 22:19  Aimmi  阅读(104)  评论(0)    收藏  举报