靖江网站推广,中国网络经纪人,app开发 杭州,静态企业网站模板一、概述
1.roles角色简介
roles用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令引入即可。 简单来讲#xff0c;roles就是通过分别将变量、文件、任务、模板及处理器放置…一、概述
1.roles角色简介
roles用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令引入即可。 简单来讲roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中并可以便捷的include它们的一种机制。roles一般用于基于主机构建服务的场景中但也可以是用于构建守护进程等场景中。主要使用场景代码复用度较高的情况下。
2.roles 角色的作用
把playbook剧本里的各个play看作为角色将各个角色的tasks任务、vars变量、templates模板、files
3.roles内各目录含义解释
files用来存放由 copy 模块或 script 模块调用的文件。templates用来存放 jinjia2 模板template 模块会自动在此目录中寻找 jinjia2 模板文件。tasks此目录应当包含一个 main.yml 文件用于定义此角色的任务列表此文件可以使用 include 包含其它的位于此目录的 task 文件。handlers此目录应当包含一个 main.yml 文件用于定义此角色中触发条件时执行的动作。vars此目录应当包含一个 main.yml 文件用于定义此角色用到的变量。defaults此目录应当包含一个 main.yml 文件用于为当前角色设定默认变量。 这些变量具有所有可用变量中最低的优先级并且可以很容易地被任何其他变量覆盖。所以生产中我们一般不在这里定义变量meta此目录应当包含一个 main.yml 文件用于定义此角色的元数据信息及其依赖关系。
二、 在playbook中使用roles创建lnmp
1.准备工作
1.1创建以roles命名的目录
mkdir /etc/ansible/roles/ -p #yum装完默认就有
1.2在 roles 目录中分别创建以各角色名称命名的目录
mkdir /etc/ansible/roles/nginx
mkdir /etc/ansible/roles/mysql
mkdir /etc/ansible/roles/php
1.3在每个角色命名的目录中分别创建files、handlers、tasks、templates、meta、defaults和vars目录用不到的目录可以创建为空目录也可以不创建
mkdir /etc/ansible/roles/nginx/{files,templates,tasks,handlers,vars,defaults,meta}
mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta}
mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta}
1.4在每个角色的 handlers、tasks、meta、defaults、vars 目录下创建 main.yml 文件千万不能自定义文件名
touch /etc/ansible/roles/nginx/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml
2.利用roles创建nginx
2.1编辑nginx任务
cd /etc/ansible/roles/nginx/tasks
vim main.yml
#引用该目录下的init.yml
- include: init.yml- name: nginx.repocopy: srcnginx.repo dest/etc/yum.repos.d/- name: install nginxyum: name{{pkg}} statelatest- name: nginx congrustion filetemplate: srcdefault.conf.j2 dest/etc/nginx/conf.d/default.confnotify: reload nginx #以上操作后为changed的状态时会通过notify指定的名称触发对应名称的handlers操作- name: index.phpcopy: srcindex.php dest{{root_dir}}- name: start nginxservice: name{{svc}} statestarted enabledyes#编写关闭防火墙任务
vim init.yml
- name: disable firewalldservice: namefirewalld statestarted enabledno- name: stop selinuxshell: /usr/sbin/setenforce 0ignore_errors: true2.2定义触发条件时执行的动作
#handlers目录用于定义此角色中触发条件时执行的动作。
cd /etc/ansible/roles/nginx/handlers
vim main.yml
- name: reload nginxservice: name{{svc}} statereloaded2.3编辑nginx模板文件
准备default.conf文件
cp default.conf /etc/ansible/roles/nginx/templates/default.conf.j2
cd /etc/ansible/roles/nginx/templates
vim default.conf.j2
--2行--
listen {{nginxip_port}};
--8行--
root {{root_dir}};
--29行--location ~ \.php$ {root {{root_dir}};fastcgi_pass {{passip_port}};fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME {{root_dir}}$fastcgi_script_name;include fastcgi_params;}2.4定义变量
#变量放在vars目录下
cd /etc/ansible/roles/nginx/vars
vim main.yml
pkg: nginx
svc: nginx
nginxip_port: 192.168.88.20:80
nginx_servername: www.web.com
root_dir: /usr/share/nginx/html
passip_port: 192.168.88.30:90002.5准备复制文件
#files目录存放由 copy 模块或 script 模块调用的文件
cd /etc/ansible/roles/nginx/files
vim index.php
?php
phpinfo();
?vim nginx.repo
[nginx-stable]
namenginx stable repo
baseurlhttp://nginx.org/packages/centos/7/$basearch/
gpgcheck0
enabled13.利用roles创建php
3.1编辑php任务
cd /etc/ansible/roles/php/tasks
vim main.yml
- name: rpm -Uvh phpshell: rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm- name: install phpyum: name{{pkg}} statelatest- name: create useruser: namephp shell/sbin/nologin create_homeno- name: create directoryfile: name/usr/share/nginx/html statedirectory- name: copy index.phpcopy: srcindex.php dest/usr/share/nginx/html- name: php.inireplace: path/etc/php.ini regexp;date.timezone replacedate.timezone Asia/Shanghainotify: reload php- name: user groupreplace: path/etc/php-fpm.d/www.conf regexpapache replacephpnotify: reload php- name: listenreplace: path/etc/php-fpm.d/www.conf regexplisten 127.0.0.1:9000 replacelisten 192.168.88.30:9000notify: reload php- name: allow_clientsreplace: path/etc/php-fpm.d/www.conf regexplisten.allowed_clients 127.0.0.1 replacelisten.allowed_clients 192.168.88.20notify: reload php- name: start php-fpmservice: namephp-fpm statestarted enabledyes3.2定义触发条件时执行的动作
vim /etc/ansible/roles/php/handlers/main.yml
- name: reload phpservice: namephp-fpm statereloaded
4.利用roles创建mysql
4.1编辑mysql剧本
vim /etc/ansible/roles/mysql/tasks/main.yml
- name: remove mariadb*yum: namemariadb* stateabsent- name: rpm -ivh mysqlshell: rpm -ivh https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpmignore_errors: true- name: mysql.reposhell: sed -i s/gpgcheck1/gpgcheck0/ /etc/yum.repos.d/mysql-community.repo- name: install mysqlyum: namemysql-server- name: start mysqlservice: namemysqld.service statestarted enabledyes- name: password.shscript: password.sh- name: remove mysql57yum: namemysql57-community-release-el7-10.noarch stateabsent
4.2编辑脚本
vim /etc/ansible/roles/mysql/files/password.shpassd$(grep password /var/log/mysqld.log | awk {print $NF})
mysql -uroot -p$passd --connect-expired-password -e ALTER USER rootlocalhost IDENTIFIED BY Admin123;
mysql -uroot -pAdmin123 -e grant all privileges on *.* to root% identified by Admin123 with grant option;chmod x roles/mysql/files/password.sh
5.修改hosts文件
vim /etc/ansible/hosts
[webservers]
192.168.88.20[dbservers]
192.168.88.30[mysql]
192.168.88.40
6.编辑lnmp的playbook并执行
cd /etc/ansible
vim lnmp2.yml
- name: nginxhosts: webserversroles:- nginx- name: phphosts: dbserversroles:- php- name: mysqlhosts: mysqlroles:- mysqlansible-playbook lnmp2.yml
文章转载自: http://www.morning.qgjxt.cn.gov.cn.qgjxt.cn http://www.morning.pmrlt.cn.gov.cn.pmrlt.cn http://www.morning.tsdqr.cn.gov.cn.tsdqr.cn http://www.morning.prgnp.cn.gov.cn.prgnp.cn http://www.morning.fksxs.cn.gov.cn.fksxs.cn http://www.morning.httzf.cn.gov.cn.httzf.cn http://www.morning.gjlst.cn.gov.cn.gjlst.cn http://www.morning.nbgfk.cn.gov.cn.nbgfk.cn http://www.morning.nwgkk.cn.gov.cn.nwgkk.cn http://www.morning.hyhzt.cn.gov.cn.hyhzt.cn http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn http://www.morning.kklwz.cn.gov.cn.kklwz.cn http://www.morning.gqtzb.cn.gov.cn.gqtzb.cn http://www.morning.gdpai.com.cn.gov.cn.gdpai.com.cn http://www.morning.frfpx.cn.gov.cn.frfpx.cn http://www.morning.qbmpb.cn.gov.cn.qbmpb.cn http://www.morning.tgnr.cn.gov.cn.tgnr.cn http://www.morning.dtnjr.cn.gov.cn.dtnjr.cn http://www.morning.gtbjc.cn.gov.cn.gtbjc.cn http://www.morning.gftnx.cn.gov.cn.gftnx.cn http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn http://www.morning.wnqfz.cn.gov.cn.wnqfz.cn http://www.morning.rqxmz.cn.gov.cn.rqxmz.cn http://www.morning.gbfck.cn.gov.cn.gbfck.cn http://www.morning.wfcqr.cn.gov.cn.wfcqr.cn http://www.morning.ykrss.cn.gov.cn.ykrss.cn http://www.morning.nbpqx.cn.gov.cn.nbpqx.cn http://www.morning.pmjw.cn.gov.cn.pmjw.cn http://www.morning.bmpjp.cn.gov.cn.bmpjp.cn http://www.morning.nrlsg.cn.gov.cn.nrlsg.cn http://www.morning.wpcfh.cn.gov.cn.wpcfh.cn http://www.morning.tnnfy.cn.gov.cn.tnnfy.cn http://www.morning.tjkth.cn.gov.cn.tjkth.cn http://www.morning.rqxtb.cn.gov.cn.rqxtb.cn http://www.morning.lmknf.cn.gov.cn.lmknf.cn http://www.morning.mzhhr.cn.gov.cn.mzhhr.cn http://www.morning.xmrmk.cn.gov.cn.xmrmk.cn http://www.morning.stxg.cn.gov.cn.stxg.cn http://www.morning.flpjy.cn.gov.cn.flpjy.cn http://www.morning.mfnsn.cn.gov.cn.mfnsn.cn http://www.morning.lyhry.cn.gov.cn.lyhry.cn http://www.morning.fyxr.cn.gov.cn.fyxr.cn http://www.morning.c7629.cn.gov.cn.c7629.cn http://www.morning.zbkwj.cn.gov.cn.zbkwj.cn http://www.morning.yrblz.cn.gov.cn.yrblz.cn http://www.morning.qhrsy.cn.gov.cn.qhrsy.cn http://www.morning.zyslyq.cn.gov.cn.zyslyq.cn http://www.morning.nhgfz.cn.gov.cn.nhgfz.cn http://www.morning.pbsfq.cn.gov.cn.pbsfq.cn http://www.morning.lpyjq.cn.gov.cn.lpyjq.cn http://www.morning.tpyrn.cn.gov.cn.tpyrn.cn http://www.morning.thnpj.cn.gov.cn.thnpj.cn http://www.morning.lqytk.cn.gov.cn.lqytk.cn http://www.morning.qtryb.cn.gov.cn.qtryb.cn http://www.morning.bwqcx.cn.gov.cn.bwqcx.cn http://www.morning.ddrdt.cn.gov.cn.ddrdt.cn http://www.morning.nzxdz.cn.gov.cn.nzxdz.cn http://www.morning.zxhhy.cn.gov.cn.zxhhy.cn http://www.morning.ktyww.cn.gov.cn.ktyww.cn http://www.morning.tkcct.cn.gov.cn.tkcct.cn http://www.morning.gqfks.cn.gov.cn.gqfks.cn http://www.morning.nzlqt.cn.gov.cn.nzlqt.cn http://www.morning.lmhwm.cn.gov.cn.lmhwm.cn http://www.morning.zxybw.cn.gov.cn.zxybw.cn http://www.morning.yuminfo.com.gov.cn.yuminfo.com http://www.morning.jjzjn.cn.gov.cn.jjzjn.cn http://www.morning.xqcgb.cn.gov.cn.xqcgb.cn http://www.morning.szoptic.com.gov.cn.szoptic.com http://www.morning.dljujia.com.gov.cn.dljujia.com http://www.morning.qxwrd.cn.gov.cn.qxwrd.cn http://www.morning.bpmdq.cn.gov.cn.bpmdq.cn http://www.morning.sjwws.cn.gov.cn.sjwws.cn http://www.morning.gbfzy.cn.gov.cn.gbfzy.cn http://www.morning.ktmpw.cn.gov.cn.ktmpw.cn http://www.morning.lmmkf.cn.gov.cn.lmmkf.cn http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn http://www.morning.rqqkc.cn.gov.cn.rqqkc.cn http://www.morning.nlpbh.cn.gov.cn.nlpbh.cn http://www.morning.yrctp.cn.gov.cn.yrctp.cn