当前位置: 代码迷 >> 综合 >> ansible---playbook的使用
  详细解决方案

ansible---playbook的使用

热度:82   发布时间:2023-11-24 15:24:58.0

playbook的使用

  • 一、使用
    • 1.把模块写入配置文件
    • 2.执行playbook任务
    • 3.创建用户:
  • 二、循环
    • 1.编辑while文件
    • 2.执行
  • 三、条件判断
    • 1.编辑文件
    • 2.执行
  • 四、handlers
    • 1.编辑文件
    • 2.执行

一、使用

1.把模块写入配置文件

vi /etc/ansible/test.yml

---
- hosts: 192.168.2.20remote_user: roottasks:- name: test_playbook
shell: touch /tmp/playbook_test.txt

说明:第一行需要三个杠
hosts参数 指定了对哪些主机进行操作,如果是多台机器可以用逗号作为分隔,也可以使用主机组,在/etc/ansible/hosts里定义
user参数 指定了使用什么用户登录远程主机操作
tasks 指定了一个任务,其下面的name参数 同样是对任务的描述,在执行过程中会打印出来
shell 是ansible模块名字

2.执行playbook任务

进入/etc/ansible/目录下执行

ansible-playbook test.yml 

在这里插入图片描述

3.创建用户:

vi /etc/ansible/create_user.yml

---
- name: create_userhosts: 192.168.2.20user: rootgather_facts: falsevars:- user: "test"tasks:- name: create useruser: name="{
    { user }}"

**说明:**gather_facts参数指定了在以下任务部分执行前,是否先执行setup模块获取主机相关信息,这在后面的task会使用到setup获取的信息时用到;
vars参数,指定了变量,这里指字一个user变量,其值为test ,需要注意的是,变量值一定要用引号引住;
user提定了调用user模块,name是user模块里的一个参数,而增加的用户名字调用了上面user变量的值。
在这里插入图片描述

二、循环

1.编辑while文件

---
- hosts: testhostuser: roottasks:- name: change mode for filesfile: path=/tmp/{
    {
     item }} mode=600with_items:- 1.txt- 2.txt- 3.txt 

说明: with_items是循环的对象

2.执行

要先在/tmp创建文件1.txt 2.txt 3.txt

ansible-playbook while.yml 

在这里插入图片描述

三、条件判断

1.编辑文件

vi /etc/ansible/when.yml

---
- hosts: testhostuser: rootgather_facts: Truetasks:- name: use whenshell: touch /tmp/when.txtwhen: ansible_eno16777728.ipv4.address == "192.168.200.20"

说明:ansible anisble-02 -m setup 可以查看到所有的facter信息
用自己的网卡名字

2.执行

ansible-playbook when.yml

在这里插入图片描述

四、handlers

1.编辑文件

vi handlers.yml

---
- name: handlers testhosts: 192.168.2.20user: roottasks:- name: copy filecopy: src=/etc/passwd dest=/tmp/aaa.txtnotify: test handlershandlers:- name: test handlersshell: echo "111111" >> /tmp/aaa.txt 

**说明:**只有copy模块真正执行后,才会去调用下面的handlers相关的操作。

2.执行

ansible-playbook handlers.yml

在这里插入图片描述
完成