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

厦门网站搭建撰写网站的建设方案

厦门网站搭建,撰写网站的建设方案,电子商务网站规划与...,网站建设的收入来源一、概述 1.roles角色简介 roles用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令引入即可。 简单来讲,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: src=nginx.repo dest=/etc/yum.repos.d/- name: install nginxyum: name={{pkg}} state=latest- name: nginx congrustion filetemplate: src=default.conf.j2 dest=/etc/nginx/conf.d/default.confnotify: "reload nginx"         #以上操作后为changed的状态时,会通过notify指定的名称触发对应名称的handlers操作- name: index.phpcopy: src=index.php dest={{root_dir}}- name: start nginxservice: name={{svc}} state=started enabled=yes#编写关闭防火墙任务
vim init.yml
- name: disable firewalldservice: name=firewalld state=started enabled=no- name: stop selinuxshell: "/usr/sbin/setenforce 0"ignore_errors: true

2.2定义触发条件时执行的动作

#handlers目录用于定义此角色中触发条件时执行的动作。
cd /etc/ansible/roles/nginx/handlers
vim main.yml
- name: reload nginxservice: name={{svc}} state=reloaded

2.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:9000

2.5准备复制文件

#files目录存放由 copy 模块或 script 模块调用的文件
cd /etc/ansible/roles/nginx/files
vim index.php
<?php
phpinfo();
?>vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

3.利用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}} state=latest- name: create useruser: name=php shell=/sbin/nologin create_home=no- name: create directoryfile: name=/usr/share/nginx/html state=directory- name: copy index.phpcopy: src=index.php dest=/usr/share/nginx/html- name: php.inireplace: path=/etc/php.ini regexp=";date.timezone =" replace="date.timezone = Asia/Shanghai"notify: "reload php"- name: user groupreplace: path=/etc/php-fpm.d/www.conf regexp="apache" replace="php"notify: "reload php"- name: listenreplace: path=/etc/php-fpm.d/www.conf regexp="listen = 127.0.0.1:9000" replace="listen = 192.168.88.30:9000"notify: "reload php"- name:  allow_clientsreplace: path=/etc/php-fpm.d/www.conf regexp="listen.allowed_clients = 127.0.0.1" replace="listen.allowed_clients = 192.168.88.20"notify: "reload php"- name: start php-fpmservice: name=php-fpm state=started enabled=yes

3.2定义触发条件时执行的动作

vim /etc/ansible/roles/php/handlers/main.yml
- name: reload phpservice: name=php-fpm state=reloaded

4.利用roles创建mysql

4.1编辑mysql剧本

vim /etc/ansible/roles/mysql/tasks/main.yml
- name: remove mariadb*yum: name=mariadb* state=absent- 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/gpgcheck=1/gpgcheck=0/' /etc/yum.repos.d/mysql-community.repo- name: install mysqlyum: name=mysql-server- name: start mysqlservice: name=mysqld.service state=started enabled=yes- name: password.shscript: password.sh- name: remove mysql57yum: name=mysql57-community-release-el7-10.noarch state=absent

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 'root'@'localhost' IDENTIFIED BY 'Admin@123';"
mysql -uroot -pAdmin@123 -e "grant all privileges on *.* to root@'%' identified by 'Admin@123' 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.yayakq.cn/news/132666/

相关文章:

  • 用word做网站功能结构图怎么判断网站是否被收录
  • 室内设计网站平面案例国外免费可以做网站的服务器
  • 单位网站建设服务浏阳seo公司
  • 网站备案查询官网入口查询wordpress建设中
  • 网站小图标什么平台能推广项目
  • 做网站用asp还是php如何把网站做成软件
  • 网站被k 原因唐山网站建设方案书
  • 做网站标签栏的图片大小做家具有那个网站好
  • 慈溪开发小学网站建设谷歌官方网站注册
  • 南京学习做网站上海网站建设科技公司
  • 哪个网站做淘宝客最合适杭州微跑网站建设公司
  • 网站建设有利点在拼多多开网店的流程
  • 大连网站建设哪个公司好企业信用信息公示系统山西
  • 个人网站介绍模板下载科学小制作 小发明 简单 手工
  • 漳州微信网站开发做网站那个php好用
  • 定制制作网站开发wordpress获取首页id
  • 网站建设培训厦门农业信息网站建设
  • 古典asp网站源码中山网站建设排名
  • 校园网站建设案例万网x5 wordpress
  • 成品超市网站美橙专业建站
  • 红色网站建设怎么用flashfxp上传wordpress
  • 网站设计与网页制作岗位招聘信息中山服装网站建设
  • 珠海做网站找哪家好做化工的外贸网站都有什么
  • 如何迅速k掉网站手机网站开发人员工具
  • 免费的html大作业网站微软做网站软件
  • 一般网站栏目结构网站开发微信授权登录
  • 国内python 做的网站怎么自己开一个平台
  • 建筑网站建设公司天空网站开发者
  • 用wordpress做视频网站做视频网站需要什么空间吗
  • 网站制作公司排名前十万物识别扫一扫