Ansible-PlayBook剧本 tags模块与template模板(详细操作过程与原理)

tags模块作用

你写了一个很长的playbook,其中有很多的任务,这并没有什么问题,不过在实际使用这个剧本时,你可能只是想要执行其中的一部分任务而已,或者,你只想要执行其中一类任务而已,而并非想要执行整个剧本中的全部任务,这个时候我们该怎么办呢?我们可以借助tags实现这个需求。

tags模块案例操作

- hosts: 20.0.0.4
  remote_user: root
  tasks:
    - name: copy  aaa1
      copy: src=/opt/aaa.txt  dest=/opt/aaa1.txt
      tags:
       - aaa
    - name: copy  aaa2
      copy: src=/opt/aaa.txt  dest=/opt/aaa2.txt
      tags:
       - bbb

在这里插入图片描述
注:执行任务调用 aaa 标签,只会执行第一个任务,后面第二个任务不会执行

[root@master ~]# ansible-playbook aaa.yml --tags="aaa"

执行tags=aaa的结果,与执行tags=bbb的结果
注:如果tags=结果一样 会一样执行
在这里插入图片描述

template模板介绍

作用:可以将带有参数的配置文件传递到目标地址,可以对文件进行属组属主的修改以及备份

Jinja2:Jinja2是基于python的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker和velocity。它能完全支持unicode,并具有集成的沙箱执行环境,应用广泛。jinja2使用BSD授权。

template模板案例

在 master上安装服务,并将服务配置发送给 node:20.0.0.4

- hosts: node
  remote_user: root
  vars:
   - server: httpd
  tasks:
   - name: install apache
     yum: name={
    
    {
    
    server}} state=latest
   - name: config file
     template: src=/etc/httpd/conf/httpd.conf  dest=/etc/httpd/conf/httpd.conf
     notify:
       - restart httpd
   - name: start httpd
     service: name={
    
    {
    
    server}} state=started
  handlers :
   - name: restart httpd
     service: name={
    
    {
    
    server}} state=restarted enabled=true

在这里插入图片描述
修改需要到其他节点上的配置为变量

[root@master ~]# vi httpd/httpd.conf 
Listen 80    修改     Listen {
    
    {
    
    ip_port}}   # 变量为 ip_port
#ServerName www.example.com:80  修改   ServerName {
    
    {
    
    yuming_port}}
MaxClients {
    
    {
    
    num}}     # 添加最大连接数,变量为 num

vi /etc/ansible/hosts 设置值的变量

[master]
20.0.0.3
[node]
20.0.0.4 ip_port=20.0.0.4:80 yuming_port=www.aa.com:80 num=600
20.0.0.5

在这里插入图片描述
20.0.0.4查看
服务httpd有没有 启动没有

[root@node1 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 五 2021-01-15 15:05:22 CST; 3min 8s ago

vi /etc/httpd/conf/httpd.conf

Listen 20.0.0.4:80

ServerName www.aa.com:80

MaxClients 600

猜你喜欢

转载自blog.csdn.net/weixin_50344807/article/details/112662804