roles

2024-08-21 00:44
文章标签 roles

本文主要是介绍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         //执行

这篇关于roles的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091635

相关文章

【ansible】ansible roles

ansible roles 简介 Ansible Roles是一种组织和管理Ansible Playbooks的方法。它们允许将相关的配置和任务分组到一个可重用的单元中,使得代码更加模块化和可维护。 一个Ansible Role包含了一组预定义的变量、任务和文件结构。它可以被其他Playbooks调用和使用,从而实现代码的重用。Roles可以用于定义各种不同的配置,从简单的软件安装和配置到复杂

云计算实训32——roles基本用法、使用剧本安装nginx、使用roles实现lnmp

一、安装nginx并更改其端口 编辑hosts配置文件 [root@mo ~]# vim /etc/ansible/hosts 创建目录 [root@mo ~]# mkdir /etc/ansible/playbook 编辑配置文件 [root@mo ~]# vim /etc/ansible/playbook/nginx.yml 执行测试 [root@mo ~]# ansi

roles、通过roles实现lamp及lnmp、数据库的高可用和负载均衡的实现

roles(难点) 1、介绍 roles(⻆⾊): 就是通过分别将variables, tasks及handlers等放置于单独的⽬录中,并可以便捷地调⽤它们的⼀种机制。假设我们要写⼀个playbook来安装管理lamp环境,那么这个playbook就会写很⻓。所以我们希望把这个很⼤的⽂件分成多个功能拆分, 分成apache管理,php管理,mysql管理,然后在需要使⽤的时候直接调⽤就可以了

day32(学习playbook-roles+脚本创建数据库和表+mycat读写分离))

一、 1.roles(角色)介绍         roles(⻆⾊): 就是通过分别将variables, tasks及handlers等放置于单独 的⽬录中,并可以便捷地调⽤它们的⼀种机制。          假设我们要写⼀个playbook来安装管理lamp环境,那么这个 playbook就会写很⻓。所以我们希望把这个很⼤的⽂件分成多个功能 拆分, 分成apache管理,php管理,mys

培训第三十二天(学习playbook-roles,脚本创建数据库和表,mycat读写分离)

上午 1、roles(角色)介绍 roles(⻆⾊): 就是通过分别将variables, tasks及handlers等放置于单独 的⽬录中,并可以便捷地调⽤它们的⼀种机制。 假设我们要写⼀个playbook来安装管理lamp环境,那么这个 playbook就会写很⻓。所以我们希望把这个很⼤的⽂件分成多个功能 拆分, 分成apache管理,php管理,mysql管理,然后在需要使⽤的时候

roles(角色)

创建目录,编写剧本下载nginx:   184  mkdir /etc/ansible/playbook   185  vim /etc/ansible/playbook/nginx.yml ---- hosts: groupremote_user: roottasks:- name: 卸载httpdyum: name=httpd sta

云计算实训32——安装nginx(修改端口为8080)、roles基本用法、使用剧本安装nginx、使用roles实现lnmp

一、安装nginx并更改其端口 编辑hosts配置文件 [root@mo ~]# vim /etc/ansible/hosts 创建目录 [root@mo ~]# mkdir /etc/ansible/playbook 编辑配置文件 [root@mo ~]# vim /etc/ansible/playbook/nginx.yml 执行测试 [root@mo ~]# ansi

jenkins 用户权限(Manage-Roles)

本次需求将DEV环境和SIT环境分开,SIT用户登录上来只能看他的SIT项目和视图 安装roles插件 进入 manage role 项目授权 用户 正则匹配你需要的项目dev .*-dev*或者.*-dev$sit .*-sit 最后细分assign role 测试使用sit账号登录 ,视图和项目都是SIT账号的

Ansible--Templates 模块 Tags模块 Roles模块

一 Templates 模块 ①Jinja是基于Python的模板引擎。Template类是Jinja的一个重要组件,可看作一个编译过的模 板文件,用来产生目标文本,传递Python的变量给模板去替换模板中的标记。 ②在配置文件中,会有一些数据(如:ip 地址、主机名、端口、用户、页面路径等)会动态的改 变,需要使用变量来表示; ③template 模块就是将变量和动态文件结合起来,最终

Ansible剧本playbook之--------Templates 模块、roles角色详细解读

目录 一、Templates 模块 1.1准备模板文件并设置引用的变量 1.2修改主机清单文件,使用主机变量定义一个变量名相同,而值不同的变量 1.3编写 playbook  1.4ansible主机远程查看修改参数 1.5验证 二、tags 模块 always应用 三、Roles 模块 3.1roles 的目录结构 3.2roles 内各目录含义解释 3.2.1fil