Ansible 角色配置

Ansible roles简介

  • Ansible roles是为了层次化、结构化地组织Playbook。
  • roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们。
  • roles一般用于基于主机构建服务的场景中,在企业复杂业务场景中应用的频率很高。
  • 以特定的层级目录结构进行组织的tasks、variables、handlers、templates、files等;相当于函数的调用把各个功能切割成片段来执行。

roles目录结构

roles:          <--所有的角色必须放在roles目录下,这个目录可以自定义位置,默认的位置在/etc/ansible/roles
  project:      <---具体的角色项目名称,比如nginx、tomcat、php
    files:     <--用来存放由copy模块或script模块调用的文件。
    templates: <--用来存放jinjia2模板,template模块会自动在此目录中寻找jinjia2模板文件。
    tasks:     <--此目录应当包含一个main.yml文件,用于定义此角色的任务列表,此文件可以使用include包含其它的位于此目录的task文件。
      main.yml
    handlers:  <--此目录应当包含一个main.yml文件,用于定义此角色中触发条件时执行的动作。
      main.yml
    vars:      <--此目录应当包含一个main.yml文件,用于定义此角色用到的变量。
      main.yml
    defaults:  <--此目录应当包含一个main.yml文件,用于为当前角色设定默认变量。
      main.yml
    meta:      <--此目录应当包含一个main.yml文件,用于定义此角色的特殊设定及其依赖关系。
      main.yml

角色基本使用:

创建role的步骤

1.创建以roles命名的目录
2.在roles目录中分别创建以各角色名称命名的目录,如httpd等
   在每个角色命名的目录中分别创建files、handlers、meta、tasks、templates和vars目录;用不到的目录可以创建为空目录,也可以不创建
3.在playbook文件中,调用个角色
 

先创建一个roles目录:

[root@browserlb ~]# mkdir ansible
[root@browserlb ~]# cd ansible/
[root@browserlb ansible]# mkdir roles
[root@browserlb ansible]# mkdir roles/{httpd,mysql,memcache} -pv
mkdir: created directory ‘roles/httpd’
mkdir: created directory ‘roles/mysql’
mkdir: created directory ‘roles/memcache’
[root@browserlb ansible]# tree roles/
roles/
├── httpd
├── memcache
└── mysql

3 directories, 0 files

创建nginx目录

[root@browserlb ansible]# mkdir roles/nginx

卸载之前安装的nginx:
[root@browserlb ansible]# ansible all -m shell -a "yum -y remove nginx"
删除已有的nginx组和nginx用户:
[root@browserlb ansible]# ansible all -m shell -a "userdel -r nginx"
确保已删除:
[root@browserlb ansible]# ansible all -m shell -a "getent passwd | grep nginx"
[root@browserlb ansible]# ansible all -m shell -a "getent group | grep nginx"
# roles(角色)和playbook.yml(剧本)是同级单位;
创建需要的任务文件和模板文件:
[root@browserlb roles]# cd nginx/
[root@browserlb nginx]# mkdir tasks templates
[root@browserlb nginx]# ll
total 0
drwxr-xr-x. 2 root root 6 Apr 14 13:40 tasks
drwxr-xr-x. 2 root root 6 Apr 14 13:40 templates

编写所需的任务
[root@browserlb nginx]# cd tasks/

创建组
[root@browserlb tasks]# vi group.yml

  1. - name: create group
  2.   group: name=nginx gid=80

创建用户
[root@browserlb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老骥又出发

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

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

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

打赏作者

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

抵扣说明:

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

余额充值