Ansible剧本拆分

文章讲述了如何使用Ansible进行剧本拆分,包括使用`include_tasks`将任务分开到不同的YML文件中,以及使用Roles进行更佳的组织。在Roles中,tasks写入`main.yml`,模板文件存放在`templates`目录下,便于管理和复用。示例展示了如何为server3组的主机设置登录提示信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ansible include

不拆分的剧本
全部是写在一个剧本文件中,比如下面juben.yml

- hosts: all
  tasks:
    - name: 1、下载
        ...: ...
    - name: 2、安装
        ...: ...
    - name: 3、配置
        ...: ...
    - name: 4、数据库操作
        ...: ...
    - name: 5、分发代码
        ...: ...

拆分剧本
使用include_tasks,比如主剧本juben.yml

- hosts: all
  tasks:
    - include_tasks: 1_download.yml
    - include_tasks: 2_install.yml
    - include_tasks: 3_config.yml
    - include_tasks: 4_dba.yml
    - include_tasks: 5_online.yml

然后在创建这5个子剧本,单独写各种的任务

roles

比如给server3组的主机设置登录提示信息,不拆分是下面这样写的

- hosts: server3
  gather_facts: yes
  tasks:
    - name: 将tishi.j2分发到server3组的主机/etc/motd
      template:
        src: /root/tishi.j2
        dest: /etc/motd
        backup: yes
~                      

使用roles
主剧本juben.yml文件是这样的的

[root@monster1 ~]# cat juben.yml 
- hosts: server3
  gather_facts: yes
  roles: 
    - role: chaifen
[root@monster1 ~]# 

创建目录,结构如下
原本tasks的内容写在tasks下的字剧本main.yml(默认读取main)
template的内容放在templates下,使用时直接写文件名即可

[root@monster1 ~]# tree -F chaifen
chaifen
├── tasks/
│   └── main.yml
└── templates/
    └── tishi.j2

2 directories, 2 files

main.yml

[root@monster1 ~]# cat chaifen/tasks/main.yml 
- name: 将tishi.j2分发到server3组的主机/etc/motd
  template:
    src: tishi.j2
    dest: /etc/motd
    backup: yes

tishi.j2

[root@monster1 ~]# cat chaifen/templates/tishi.j2 
#下面是通过ansible分发的信息
IP地址:{{ansible_default_ipv4.address}}
主机名称:{{ansible_hostname}}

分发后远程登录

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋的树懒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值