当前位置: 首页 > news >正文

roles

一、roles介绍

roles(⻆⾊): 就是通过分别将variables, tasks及handlers等放置于单独的⽬录中,并可以便捷地调⽤它们的⼀种机制。

假设我们要写⼀个playbook来安装管理lamp环境,那么这个playbook就会写很⻓。所以我们希望把这个很⼤的⽂件分成多个功能拆分, 分成apache管理,php管理,mysql管理,然后在需要使⽤的时候直接调⽤就可以了,以免重复写。就类似编程⾥的模块化的概念,以达到代码复⽤的效果。

二、创建roles的目录结构

files:⽤来存放由copy模块或script模块调⽤的⽂件。

tasks:⾄少有⼀个main.yml⽂件,定义各tasks。

handlers:有⼀个main.yml⽂件,定义各handlers。

templates:⽤来存放jinjia2模板。

vars:有⼀个main.yml⽂件,定义变量。

meta:有⼀个main.yml⽂件,定义此⻆⾊的特殊设定及其依赖关系。

注意: 在每个⻆⾊的⽬录中分别创建files,tasks,handlers,templates,vars和meta⽬录,⽤不到的⽬录可以创建为空⽬录.

三、通过roles实现httpd

1.创建roles⽬录及⽂件,并确认⽬录结构

[root@m0 ~]# cd /etc/ansible/roles/

[root@m0 roles]# tree

.

└── httpd

    ├── files

    ├── handlers

    │    └── main.yml

    ├── meta

    │    └── main.yml

    ├── tasks

    │    └── main.yml

    ├── templates

    └── vars

        └── main.yml

2.准备httpd服务器的主⻚⽂件,php测试⻚和配置⽂件等

[root@m0 ~]# yum -y install httpd

[root@m0 roles]# echo "<?php\n\tphpinfo();\n?>" > /etc/ansible/roles/httpd/files/test.php

[root@m0 roles]# echo "test main page" > /etc/ansible/roles/httpd/files/index.html

[root@m0 roles]# cp /etc/httpd/conf/httpd.conf /etc/ansible/roles/httpd/files/

3.编写httpd⻆⾊的main.yml⽂件

[root@m0 roles]# vim /etc/ansible/roles/httpd/tasks/main.yml

---

-       name:    安装httpd

        yum:     name=httpd,httpd-devel      state=present

-       name:    同步httpd配置文件

        copy:    src=/etc/ansible/roles/httpd/files/httpd.conf     dest=/etc/httpd/conf/httpd.conf

        notify:  restart httpd

-       name:    同步主页文件

        copy:   src=/etc/ansible/roles/httpd/files/index.html     dest=/var/www/html/index.html

-       name:    同步php测试页

        copy:    src=/etc/ansible/roles/httpd/files/test.php       dest=/var/www/html/test.php

-       name:    启动httpd并开机自启动

        service: name=httpd     state=started       enabled=yes

4.编写httpd⻆⾊⾥的handler

[root@m0 ansible]# vim /etc/ansible/roles/httpd/handlers/main.yml

---

-      name:          restart httpd

       service:       name=httpd      state=restarted

5.将两台主机添加到组

[root@m0 ~]# vim /etc/ansible/hosts

s1 ansible_ssh_host=192.168.1.68 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=q

s2 ansible_ssh_host=192.168.1.69 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=q

[s]

s1

s2

6.编写httpd的playbook⽂件调⽤前⾯定义好的⻆⾊

[root@m0 roles]# vim /etc/ansible/playbook/httpd.yaml

---

-   hosts:    s

    remote_user:   root

    roles:

      -  httpd

8.执行playbook文件

[root@m0 roles]# ansible-playbook /etc/ansible/playbook/httpd.yaml         //执行


http://www.mrgr.cn/news/2120.html

相关文章:

  • 力学笃行(五)Qt key绑定、钩子(hook)
  • Go-Zero微服务框架下开发接口流程
  • 【深度学习】OCR, 如何使用 Tesseract 进行 OCR 识别
  • spring揭秘07-aop基本要素及代理模式3种实现
  • 【C++】————智能指针
  • 赛氪网闪耀IGTA2024:为青年学者搭建平台,获科协高度评价
  • Linux信号的概念信号的产生
  • Web开发:ORM框架之Freesql的入门和技巧使用小结
  • HTTP范围放大攻击简记
  • 牛客算法小题
  • openssl查看证书公钥 openssl 验证证书和密钥
  • Linux软件编程day(12) -udp
  • 深度学习----------------------深度卷积神经网络AlexNet
  • Python3网络爬虫开发实战(9)代理的使用 (需补充代理池的构建)
  • 蓝队技能-应急响应篇C2后门权限维持手法WindowsLinux基线检查排查封锁清理
  • 使用 ESP32 和 TFT 屏幕显示实时天气信息 —— 基于 OpenWeatherMap API
  • 大数据背景下基于Python语言的单车租赁商业数据可视化分析
  • 设计资讯 | 这款受数学方程启发的平板桌:配集成黑胶唱片机和无线充电器
  • 无人机模拟训练室技术详解
  • linux基本指令