roles角色

roles角色

创建角色

ansible-galaxy init roles/apache

角色配置文件:vim roles/apache/tasks/main.yml

---
# tasks file for roles/apache

- name: install http
  yum:
          name: httpd
          state: present
- name: start http
  service:
          name: httpd
          state: started
          enabled: yes
- name: start firewalld
  service:
          name: firewalld
          state: started
          enabled: yes

- name: firewalld allow http
  firewalld:
          service: http
          state: enabled
          permanent: yes
          immediate: yes

- name: index.html
  template:
          src: index.html.j2
          dest: /var/www/html/index.html
  notify: restart httpd

角色配置文件:vim roles/apache/handlers/main.yml

---
# handlers file for roles/apache


- name: restart httpd
  service:
          name: httpd
          state: restarted

角色配置文件:vim roles/apache/templates/index.html.j2

Welcome to {{ansible_fqdn}} on {{ansible_default_ipv4.address}}

调用角色:

vim neroles.yml(调用 roles角色)

---
- name: roles
  hosts: all
  roles:
          - apache

include roles调用角色

vim roles.yml(调用方法二:使用include roles调用

---
- name: 1111
  hosts: all
  tasks:
          - name: include roles
            include_role:
                    name: apache

playbook执行顺序

在默认情况下,playbook会按先后顺序执行tasks,但是如果在playbook中使用了roles,则会优先执行roles部分,再执行tasks.
想要规范tasks和roles的执行顺序,可以使用pre_tasks和post_tasks。
pre_tasks: 最优先被执行
post_tasks:最后被执行
playbook的任务执行顺序:
1.pre_tasks中定义的任务
2.roles中任务
3.tasks中的任务
4.post_tasks中的任务

roles的依赖

当一个roles在运行时需要依赖另一个rolers时候,就需要在roles的
meta/main.yml中定义好依赖关系。
在meta/main.yml中使用dependencies关键词来定义所依赖的roles

dependencies:
­ roleB
­ roleC

在使用roles依赖时注意:

1.如果roleA依赖roleB,必须是在roleA的meta/main.yml中配置依赖
2.在meta/main.yml中使用dependencies来引入被依赖的role
3.可以以列表方式引入多个role
4.被引入的role会优先执行

使用ansible galaxy 部署角色

ansible galaxy 是ansible的社区中心,用于共享ansible 角色,我们可以使用ansible-­galaxy来下载别人共享的角色。默认是从galaxy.ansible.com 下载。

搜索角色:

ansible­-galaxy search 'roels_name'

获取角色信息

ansible­-galaxy info roels_name

安装角色

ansible-­galaxy install roels_name -­p roles/   #-p指定路径安装

从指定文件中安装角色

ansible­-galaxy install roels_name -­p roles/ ­-r require.yml

把安装请求信息写入到yml文件中,可以指定请求的位置、角色版本、请求
方法等信息。
require.yml 文件内容

src: git@workstation.lab.example.com:student/bash_env
scm: git
version: master
name: student.bash_env
-­ src: file:///opt/local/roles/myroles.tar
name: myrole

所请求文件中的src路径是存储roles的URL

使用rhel­system roles

rhel­system roles 是为了帮助it用户更好的管理RHEL系统而引入的一个系统角色.

安装rhel­system roles

yum ­y install rhel­system­roles

rhel­-system roles提供了五种ansible 角色,分别是kdump,network,postfix,selinux,timesync
各个角色的使用方法可以参照/usr/share/doc/rhel­system­roles1.0目录下的各个playbook示例。
例:
使用rhel­-system-­roles.timesync
­­­

­ name: time sync
hosts: all
vars:
timesync_ntp_servers:
­ hostname: 172.25.0.254
iburst: yes
roles:
­ rhel­system­roles.timesync
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

向阳-Y.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值