playbook中模块实例讲解

1、Templates模块实例

1.1、用远程复制的方法拷贝模板

[root@ansible ~]# scp root@192.168.140.30:/etc/httpd/conf/httpd.conf ./
#用root身份去远程拷贝模板文件到当前目录下

在这里插入图片描述

[root@ansible ~]# mkdir demo   #创建demo的文件夹
[root@ansible ~]# mv httpd.conf demo   #把模板剪切到demo文件夹里,方便操作
[root@ansible ~]# cd demo
[root@ansible demo]# ls

在这里插入图片描述

[root@ansible demo]# vim httpd.conf         #修改配置文件

在这里插入图片描述
在这里插入图片描述

[root@ansible demo]# mv httpd.conf httpd.conf.j2  #把配置文件改变成模板文件  
注:j2是jinja2,基于python的模板引擎,提供模板功能
[root@ansible demo]# vim /etc/ansible/hosts     #进入配置文件,定义变量

在这里插入图片描述

[root@ansible demo]# vim apache.yml       #创建剧本
- hosts: mysql
  remote_user: root
  vars:
  - server: httpd
  tasks:
  - name: install apache
    yum: name={
    
    {
    
    server}} state=latest
  - name: config file
    template: src=/root/demo/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
    notify:
    - restart httpd
  - name: start httpd
    service: name={
    
    {
    
    server}}
  handlers:
  - name: restart httpd
    service: name={
    
    {
    
    server}} state=restart enabled=true

在这里插入图片描述

[root@ansible demo]# ansible-playbook apache.yml --syntax-check   #检查语法
[root@ansible demo]# ansible-playbook apache.yml    #执行文件

在这里插入图片描述

[root@mysql ~]# cd /etc/httpd/conf
[root@mysql conf]# ll

在这里插入图片描述

[root@mysql conf]# vim httpd.conf

在这里插入图片描述
在这里插入图片描述

2、tags模块实例

注:在一个playbook中,我们一般会定义很多个task,如果我们只想执行其中的某一个task或多个task时就可以使用tags标签功能

[root@ansible ~]# vim hosts.yml
- hosts: webserver
  remote_user: root
  tasks:
  - name: copy hosts
    copy: src=/etc/hosts dest=/opt/hosts
    tags:
    - ms
  - name: touch hosts01
    file: path=/opt/hosts01 state=touch

在这里插入图片描述

[root@ansible ~]# ansible-playbook hosts.yml --tags="ms"

在这里插入图片描述

[root@webserver opt]# ll

在这里插入图片描述

2.1、相同的标签实验

[root@ansible ~]# vim hosts.yml

在这里插入图片描述

[root@ansible ~]# ansible-playbook hosts.yml --tags="ms"

在这里插入图片描述

[root@webserver opt]# ll

在这里插入图片描述
总结:如果需要执行几个任务,只需要给任务打上相同名字的标签,没被标签的就会不被执行

2.2、标签名为always实验

[root@ansible ~]# vim hosts.yml

在这里插入图片描述

[root@ansible ~]# ansible-playbook hosts.yml --tags="ms"

在这里插入图片描述

[root@webserver opt]# ll

在这里插入图片描述

3、总结

只有对ansible和playbook中的模块熟悉,掌握,才能更好的运用ansible来进行工作

猜你喜欢

转载自blog.csdn.net/weixin_50344814/article/details/112646035