ansible(6)

##########利用角色简化 playbook##########

ansible 角色具有下列优点:

1.角色可以把内容分组,容易复用

2.可以用角色定义系统基本信息:web 服务器、数据库服务器等

3.角色可以使大型项目易管理

4.角色可以由不同人并行开发

ansible 角色会把不同功能的 playbook 分开,一个标准的角色含有下列子目录:

defaults:其中的 main.yml 包含角色变量的默认值 (在所有变量中优先级最低)

files:包含角色任务引用的静态文件

handlers:主要定义处理程序

meta:角色相关信息,如作者、许可证等

tasks:定义任务

templates:任务引用的 jinja2 模板

tests:可以包含清单和 test.yml 的playbook,用于测试

vars:定义角色的变量

在 playbook 中使用 ansible 角色:

例如:

控制执行顺序

有时需要在角色之前或之后执行一些任务:

关键字:

之前:pre_tasks

之后:post_tasks

######利用系统角色重用内容######

安装系统角色:

[root@localhost mnt]# yum install -y rhel-system-roles.noarch

安装好的角色位于:

[root@localhost mnt]# ls -l /usr/share/ansible/roles/

查看其中内容(网络角色):

[root@localhost mnt]# ls -l /usr/share/ansible/roles/rhel-system-roles.timesync

时间同步角色示例

查看系统中有哪些角色可以使用:

[root@localhost roles]# ansible-galaxy list

创建目录保存变量:

[root@localhost roles]# mkdir -p group_vars/all

查看帮助:

[root@localhost roles]# cat /usr/share/doc/rhel-system-roles/timesync/README.md

时区设置的 example:

[root@localhost roles]# ansible-doc timezone | grep -A 5 "EXAMPLES"

清单和配置文件:

[root@localhost roles]# vim configure_time.yml

[root@localhost roles]# mkdir group_vars
[root@localhost roles]# cd group_vars/

[root@localhost group_vars]# mkdir group1
[root@localhost group_vars]# cd group1/

[root@localhost group1]# vim timezone.yml

[root@localhost roles]# ansible-playbook --syntax-check configure_time.yml

[root@localhost roles]# ansible-playbook  configure_time.yml

[root@servera Desktop]# timedatectl

#####创建角色######

角色创建流程:分三个步骤

1.创建角色目录结构

2.定义角色内容

3.在 playbook 中使用角色

创建角色框架:

[root@localhost ~]# mkdir project
[root@localhost ~]# cd project/
[root@localhost project]# mkdir roles
[root@localhost project]# cd roles/

[root@localhost roles]# ansible-galaxy init my_role   ##创建

[root@localhost my_role]# tree .

创建并初始化:

[root@localhost ~]# mkdir role-create

[root@localhost ~]# cd role-create/

[root@localhost role-create]# mkdir roles

[root@localhost role-create]# cd roles/

[root@localhost roles]# ansible-galaxy init myvhost

配置 tasks 的 play:

[root@localhost myvhost]# cd tasks/

[root@localhost tasks]# vim main.yml    ##安装、启动和配置虚拟主机

编写处理程序:

[root@localhost tasks]# cd ..

[root@localhost myvhost]# cd handlers/

[root@localhost handlers]# vim main.yml

编写 html 文件:

[root@localhost role-create]# mkdir files

[root@localhost files]# cd html/

[root@localhost html]# vim index.html

配置模板:

[root@localhost html]# cd ..
[root@localhost files]# cd ..

[root@localhost myvhost]# cd templates/

[root@localhost templates]# vim vhost.conf.j2

编写使用 roles 的 playbook:

[root@localhost templates]# cd ..
[root@localhost myvhost]# cd ..

[root@localhost roles]# cd ..

[root@localhost role-create]# vim use_vhost_role.yml

[root@localhost role-create]# ansible-playbook --syntax-check use_vhost_role.yml

[root@localhost role-create]# ansible-playbook  use_vhost_role.yml

注意:这里使用的主机清单是系统默认的

测试:

[root@servera Desktop]# systemctl status httpd

[root@servera Desktop]# cd /etc/httpd/conf.d/

[root@servera conf.d]# cat vhost.conf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值