一、服务器角色

二、部署ansible

1、ansible简介

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;

(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

2、ansible的优点

简单易用,学习门槛低、问题少、安装快、执行快,可进行批量命令和模块扩展,操作完全依赖 SSH 而不需要安装 agent。Ansible 结合 Docker、Mesos、Puppet、Vagrant、Git 等系统可以构建出非常好的自动化运维平台。

3、ansible的缺点

简单的设计从而导致没有依赖管理功能,另外当被管理的服务器达到一定数量时,执行效率会大大降低。

4、安装过程

ansible的安装包需从互联网上下载,即使用互联网yum源。

第一步,链接网址http://mirrors.163.com,点击右侧的centos帮助,下载centos6这个链接指向的文件,把下载的文件拷贝到/etc/yum.repos.d/目录下;

第二步,使用EPLE的yum源安装,语句为rpm -ivh epel-release-latest-6.noarch.rpm,然后查找当前目录下所有以rpm结尾的文件,并复制到/root/docs/ansible_rpm/下,语句为:

find -name '*rpm' -exec cp {} /root/docs/ansible_rpm/

第三步,在在联网的情况下,执行语句vim /etc/yum.conf,修改其中的配置文件keepcache=1,保存退出。然后执行下面的语句:

yum install -y ansible

安装的同时,RPM包也已下载到/var/yum目录下;

第四步,使用语句ansible --version查看是否安装成功,如果出现版本信息则安装成功。如果出现问题,则执行以下语句(需要rpm包):

yum install -y python-markupsafe
rpm -e ansible
rpm -ivh ansible*rpm

第五步,如果希望以后可以更加方便的安装,则可以将这些rpm包拷贝到自己创建的yum源中,用

createrepo .

创建一个索引,这样只要在/etc/yum.repo.d/下的repo文件中加入这个目录,这样就可以直接用yum语句安装、删除ansible包了。

5、创建工作目录

在需要的目录下创建目录ansible:

mkdir ansible

6、编写配置文件ansible.cfg

使用cd命令转到ansible目录下,vim配置文件ansible.cfg,内容如下:

[defaults]
inventory = hosts    # 定义被管理主机的文件
remote_user = root   # ssh到远程主机的用户

编写完成后,保存并退出。

7、编写主机清单文件hosts

vim主机清单文件hosts,即把被管理的服务器填入hosts文件中,并为其分组(一般写主机名不写ip地址),如:

[webservers]
yzy.bilibili.com
ljm.bilibili.com
[dbservers]
ccc.bilibili.com
[lvs]
twh.bilibili.com

8、利用ansible语句检查配置文件是否编写成功

执行临时命令ad-hoc,格式为:ansible主机 -m 模块 -a '选项',如:

ansible all -a 'id root'

该语句的意思为查看所有主机的root用户的id,如果没有指定模块则默认使用shell模块;

下面再来举个例子,如何分别列出hosts中webservers组的主机信息:

ansible all --list-hosts

如何列出所有组的主机信息:

ansible all --list-hosts

三、部署数据库服务器

1、mysql的简介

MySQL 是一个关系型数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database ManagementSystem,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条"授权政策"),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP ,Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种web服务器解决方案之一,称之为LAMP。

2、ansible-playbook配置思路

 ansible配合使用mysql_db、mysql_user在客户端创建数据库、创建用户及配置主从。

3、mysql的优点

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;

2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统;

3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等;

4.支持多线程,充分利用CPU资源;

5.优化的SQL查询算法,有效地提高查询速度

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中;

7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名;

8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径;

9.提供用于管理、检查、优化数据库操作的管理工具;

10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库;

11.支持多种存储引擎。

4、服务器授权远程主机访问

本地需要管理远程的一批服务器,主要执行以下任务:

(1) 将本地的文件复制到远端所有服务器;

(2) 需要在远程服务器中执行一个个命令;

使用copy模块,可以将本地文件一键复制到远程服务器; -a后跟上参数,参数中指定本地文件和远端路径;

ansible通过ssh登录到远程服务器后,并不执行.bash_profile来设置用户自定义的环境变量;如果我们需要管理的目标服务器的路径不同,就不能直接写绝对路径,也不能写变量替换的路径;

比如:针对服务器A的目标复制路径为 /opt/app/user1/bin ,服务器B的目标复制路径为/opt/app/user2/bin; 这两个路径在各自的服务器中的路径变量都设置为$bin; 但在copy模块中,我们不能直接使用dest = $bin/; 路径设置一般放在.bashrc /.bash_profile文件,但ansible模块登录后并不加载这两个文件;

解决方法: 针对这种情况,可以将dest路径设置为~/,都复制到用户目录,后续再通过远程脚本处理;

需要在远程执行一个个命令来管理远程服务器;

远程执行命令的模块有command、shell、scripts、以及raw模块;

command模块为ansible默认模块,不指定-m参数时,使用的就是command模块; comand模块比较简单,常见的命令都可以使用,但其命令的执行不是通过shell执行的,所以,像这些 "<",">", "|", and "&"操作都不可以,当然,也就不支持管道;示例:显示远程路径:

缺点:不支持管道,就没法批量执行命令;

使用shell模块,在远程命令通过/bin/sh来执行;所以,我们在终端输入的各种命令方式,都可以使用; 但是我们自己定义在.bashrc/.bash_profile中的环境变量shell模块由于没有加载,所以无法识别;如果需要使用自定义的环境变量,就需要在最开始,执行加载自定义脚本的语句;

5、部署mysql

如何通过ansible部署mysql呢?上面我们已经部署好ansible了,以下便是通过ansible部署mysql并起服务的介绍:

#我们都遵循装包-配置-起服务的规则,那么我们在写脚本的时候应该注意什么呢?开头的格式以’---’开行,第二行开始写脚本内容,整个脚本的名字,对应使用的hosts主机名,以及整个脚本要执行的任务有什么都要一一明细,如果不清楚步骤,那么通过ansible部署mysql的过程中就会遇到很多问题,比如文件目录找到,装包过程中丢包,对应的专用模块不对应,多一个空格或者少一个分号等等。

#首先明确装包装什么包,包之间有什么依赖关系,有什么优点等等。

第一步,利用装包特有的专属模块yum和item循环语句,item循环语句with_items:里面有要安装的所有包,state则表示要安装软件的版本转态。present和latest都表示最新版;

第二步,进行服务的配置:这里用到了 mysql_db:和mysql_user:板块来进行数据库的搭建和用户的创建管理,密码是:12345,对用户进行授权处理,在这里,我们对此数据库进行任何人可以访问,授权处理为:priv: 'yzybbs.*:ALL,GRANT',注意到这里我的hosts:’%’,这个%的意思是允许其人任何用户远程连接管理此数据库,并对此有执行权限;

第三步,启动mysql服务,就简单的写一个server板块,启动服务即可,启动服务了,但是我得判断mysql服务有没有启动成功,一般,如果mysql服务没有启动成功,可以通过查看错误日志的方式,日志默认路径/var/log/mysqld.log。

ansible-playbook代码如下:(3-deploy-mysql.yml)

---
- name: deploy mysqlhosts: dbservicetasks:- name: install pkgsyum:name: "{{ item }}"state: presentwith_items:- mysql- mysql-server- MySQL-python - name: start serviceservice:name: mysqldstate: startedenabled: true- name: Create a new databasemysql_db:name: yzybbsstate: present- name: create a new usermysql_user:name: yzyhost: '%'password: 12345priv: 'yzybbs.*:ALL,GRANT'state: present

四、部署web服务器

1、通过ansible安装、起服务

以下是对web服务器进行,安装、配置、起服务的代码:(1-deploy-web.yml)
---
- name: deploy webhosts: webservicetasks:- name: install pkgsyum:name: "{{item}}"state: presentwith_items:- httpd- php- php-mysql- name: configcopy:src: /root/B1_yzy/file/httpd.confdest: /etc/httpd/conf/httpd.confowner: rootgroup: rootmode: 0644- name: start serviceservice:name: httpdstate: startedenabled: true

第一行必须是以'---'开头,第二行开始写内容。'- name'是说明playbook的名字,起名字一定要清晰易懂,一个playbook可以有多个名字,即多个play(剧本);'hosts'的意思是所要执行命令的主机名所在的文件夹,一般使用主机名而不是ip地址,主机名可以有多个;'tasks'即该playbook所要执行的任务,一个play可以有多个tasks,本代码中可以看出一共有3个tasks(三个任务名'name')。

第一个任务是安装apache(httpd、php、php-mysql)。这里利用yum专有模块和item数组对多台主机的安装,item是数组,with_item是数组内容,state则表示要安装软件的版本转态。present和latest都表示最新版;第二个任务是拷贝文件'copy'。src表示源文件的路径,dest则是需要拷贝文件的主机名的路径,owner和group分别表示拥有对该源文件所有权限的用户和所属组,mode表示赋予所拷贝文件主机的权限;第三个任务是起服务。利用service专有模块对httpd开启服务,state表示对httpd的状态为开启,enabled表示一个判断命令,即service是否开启,true表示“是”。

2、将Discuz安装到web1上

以下是将Discuz.zip拷贝到web1(即ljm.bilibili.com)上并解压的代码:(2-install-discuz.yml)

---
- name: deploy ljmhosts: ljm.bilibili.comtasks:- name: copy and unzipunarchive:src: /root/B1_yzy/file/Discuz.zipdest: /var/yzy_web/owner: apachegroup: apache

本次操作的主机名是ljm.bilibili.com,利用unarchive的ansible专有模块对Discuz.zip的拷贝和解压缩,将本机的/root/B1_yzy/file/Discuz.zip压缩文件拷贝到ljm.bilibili.com主机的/var/yzy_web/下,权限所属的用户和组是apache。

3、将web1上的discuz拷贝到web2上

以下是将web1上的Discuz拷贝到web2(即yzy.bilibili.com)上代码:(4-deploy-otherweb.yml)

---
- name: synchronize bbs from ljmhosts: ljm.bilibili.comtasks:- name: install rsyncyum:name: rsyncstate: present- name: zipshell:cd /var/yzy_web/;zip -r -q -o bbs.zip bbs- name: pull bbssynchronize:src: /var/yzy_web/bbs.zipdest: /root/B1_yzy/file/mode: pull - name: remove zip fileshell:cd /var/yzy_web/;rm -f bbs.zip;
- name: copy bbs to yzyhosts: yzy.bilibili.comtasks:- name: copy bbsunarchive:src: /root/B1_yzy/file/bbs.zipdest: /var/yzy_webowner: rootgroup: root

该代码中有2个play:

第一个任务,将Discuz中的bbs文件夹压缩并备份到web2上,第一个任务是安装rsync,rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。present表示安装最新版本;

第二个任务,将Discuz中的bbs文件夹压缩的shell脚本,路径是/var/yzy_web/;第三个任务则是利用ansible中的synchronize专有模块将本机的源文件bbs.zip备份到另一台远程主机上的/root/B1_yzy/file/下,权限是pull;

第三个任务,先cd到/var/yzy_web/路径下然后将bbs.zip删除。第二个play任务是将远程主机上/var/yzy_web/路径下的bbs.zip拷贝到web2主机上。利用ansible中的unarchive专有模块将远程主机上的/root/B1_yzy/file/bbs.zip压缩包拷贝到web2主机上的/var/yzy_web路径下并解压缩然后自动删除,权限所属的用户和组都为root。

4、拷贝跳转路径文件

以下是将Discuz论坛html跳转文件拷贝到webservice主机上的代码(5-index-jump.yml)
---
- name: let web jumphosts: webservicetasks:- name: copy htmlcopy:src: /root/B1_yzy/file/index.htmldest: /var/yzy_web/owner: rootgroup: rootmode: 0644

这是跳转文件的文件内容:

<head>
<meta http-equiv="refresh" content="0;url=bbs">
</head>

hosts是webservice组中的主机,即web1和web2。任务是利用ansible中的copy专有模块将远程主机上的/root/B1_yzy/file/index.html文件拷贝到webservice组中的主机的/var/yzy_web/路径下,权限所属的用户和组都为root,权限是0644。

五、部署lvs调度器

1、LVS调度器

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

2、LVS特

可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network AddressTranslation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IPTunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。

3、工作模式

工作模式有四种:nat / tun / dr / fullna

4、工作特点

客户端不再直接访问后台应用服务器(real server),而是访问lvs调度器,调度器再根据它的调度算法将用户请求转发到real server。DR模式real server回应客户端,不用将回应发送到调度器。

5、调度算法

调度算法有10种,常用的是rr轮询/wrr加权轮询/lc最少连接/wlc加权最少连接,其他还有基于局部的最少连接lblc/带复制的基于局部的最少连接lblcr/源地址散列sh/目标地址散列dh/期望的最短延迟sed/最少队列调度nq

6、LVS优点

(1) 开源,免费;

(2)在网上能找到一些相关技术资源;

(3)具有软件负载均衡的一些优点。

7、LVS缺点

(1)最核心的就是没有可靠的支持服务,没有人对其结果负责;

(2)功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等;

(3)开启隧道方式需重编译内核;

(4)配置复杂;

(5)主要应用于LINUX,目前没有专门用于WINDOWS的版本,不过可以通过配置,使windows成为LVS集群中的real server(win2003、win2008中)。

8、lvs部署安装

(1)  安装ipvsadm

yum -y install ipvsadm

检查安装:

ipvsadm -v

(2)在lvs调度器的物理网卡上配置vip

cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0:1
vim ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=none
NETMASK=255.255.255.0
TYPE=Ethernet
IPADDR=172.16.100.8
ONBOOT=yes

启动网卡:

ifup eth0:0

(3)在web服务器的本地环回接口lo上配置vip

cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=172.16.100.8
NETMASK=255.255.255.255
NETWORK=192.168.16.240
BROADCAST=192.168.16.240
ONBOOT=yes
NAME=lo:0

启动本地环回接口lo:

ifup lo:0

(4)修改web服务器的内核参数,以便客户端发送的请求,只有调度器回应,注意,两台web服务器都要配置

sysctl -a | grep arp_ig
echo 'net.ipv4.conf.all.arp_ignore = 1'>> /etc/sysctl.conf
cho 'net.ipv4.conf.lo.arp_ignore = 1'>> /etc/sysctl.conf
echo 'net.ipv4.conf.all.arp_announce = 2'>> /etc/sysctl.conf
echo 'net.ipv4.conf.lo.arp_announce = 2'>> /etc/sysctl.conf
sysctl -p

(5)在lvs调度器上配置规则

ipvsadm -A -t 192.168.16.240:80 -s wrr
ipvsadm -a -t 192.168.16.240:80 -r192.168.16.254 -g -w 2
ipvsadm -a -t 192.168.16.240:80 -r192.168.16.249
ipvsadm -Ln

(6)  保存规则

service ipvsadm save

而用ansible-playbook怎么办呢

先部署lvs服务器:(6-deploy-lvs.yml)

---
- name: deploy lvshosts: lvstasks:- name: install ipvsadmyum:name: ipvsadmstate: present- name: copy vipcopy:src: /root/B1_yzy/file/ifcfg-eth0:0dest: /etc/sysconfig/network-scripts/owner: rootgroup: rootmode: 0644- name: deploy vipshell:ifup eth0:0ipvsadm -A -t 172.16.100.8:80 -s wlc;ipvsadm -a -t 172.16.100.8:80 -r 172.16.100.2;ipvsadm -a -t 172.16.100.8:80 -r 172.16.100.5;service ipvsadm save

再部署web,ansible代码如下:(7-deploy-webvip.yml)

---
- name: deploy web viphosts: webservicetasks:- name: copy vipcopy:src: /root/B1_yzy/file/ifcfg-lo:0dest: /etc/sysconfig/network-scripts/owner: rootgroup: rootmode: 0644- name: deploy vipshell:ifup lo:0;echo 'net.ipv4.conf.all.arp_ignore = 1' >> /etc/sysctl.conf;echo 'net.ipv4.conf.lo.arp_ignore = 1' >> /etc/sysctl.conf;echo 'net.ipv4.conf.all.arp_announce = 2' >> /etc/sysctl.conf;echo 'net.ipv4.conf.lo.arp_announce = 2' >> /etc/sysctl.conf;sysctl -p;

六、配置DNS服务器

1、DNS域名解析系统

DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。

2、DNS功能

每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议的功能。

主机名到IP地址的映射有两种方式:

1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;

2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

3、DNS查询

若想跟踪一个FQDN名的解析过程,在LinuxShell下输入dig www +trace,返回的结果包括从根域开始的递归或迭代过程,一直到权威域名服务器。

GeniePro DNS 应对DNS劫持和DNS缓存中毒攻击的关键性机制:一致性检查

每个Geniepro节点将自身的DNS记录发送给工作组内其他节点请求一致性检查;

每个Geniepro节点将自身的记录与收到的记录进行比较;

每个Geniepro工作组的通信协调节点将获得的DNS记录更新发送给其他组的通信协调节点请求一致性检查;

每个Genipro工作组的通信协调节点向上一级DNS服务器请求更新记录并与收到的其他通信协调节点的记录进行比较。

4、DNS安全

(1) 针对域名系统的恶意攻击:DDOS攻击造成域名解析瘫痪。

(2) 域名劫持:修改注册信息、劫持解析结果。

(3) 国家性质的域名系统安全事件:“.ly”域名瘫痪、“.af”域名的域名管理权变更。

(4) 系统上运行的DNS服务存在漏洞,导致被黑客获取权限,从而篡改DNS信息。

(5) DNS设置不当,导致泄漏一些敏感信息。提供给黑客进一步攻击提供有力信息。

5、DNS配置

先配置/etc/named.conf

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//options {listen-on port 53 { 172.16.100.6; };// listen-on-v6 port 53 { ::1; };directory   "/var/named";dump-file    "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query     { any; };recursion yes;forwarders { 10.0.0.1; };dnssec-enable no;dnssec-validation no;/* Path to ISC DLV key *///bindkeys-file "/etc/named.iscdlv.key";//managed-keys-directory "/var/named/dynamic";
};logging {channel default_debug {file "data/named.run";severity dynamic;};
};zone "." IN {type hint;file "named.ca";
};zone "bilibili.com" IN {type master;file "bi.com.ndb";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

在配置/var/named下的文件,名为:www.bilibili.com

$TTL 60
@  IN SOA  @ rname.invalid. (0    ; serial1D  ; refresh1H ; retry1W   ; expire3H )    ; minimumIN NS  @
@  IN A    127.0.0.1
www IN A    172.16.100.8

七、编写shell脚本完成远程主机的一键配置

其实这一块能内容很简单,编辑一个简单的shell脚本,分别完成,web创建前和创建后的所有步骤

第一个脚本为:

#!/bin/bash
ansible-playbook playbooks/1-deploy-web.yml
ansible-playbook playbooks/2-install-discuz.yml
ansible-playbook playbooks/3-deploy-mysql.yml

在第一个脚本执行完毕后,打开浏览器,输入http://172.16.100.2/bbs,完成安装,其中数据库主机为:172.16.100.7,数据库名为:yzybbs,用户为:yzy,密码为12345,管理员密码随机设取

如图:

第二个脚本为:

#!/bin/bash
ansible-playbook playbooks/4-deploy-otherweb.yml
ansible-playbook playbooks/5-index-jump.yml
ansible-playbook playbooks/6-deploy-lvs.yml
ansible-playbook playbooks/7-deploy-webvip.yml

最后作品:

(域名是随机选取的,如有侵权请联系作者)

用ansible自动化搭建web、sql服务器、lvs调度器相关推荐

  1. mysql webmail ubuntu12.04 imap_Ubuntu 12.04下搭建Web网站服务器 (MySQL+PHP+Apache环境)教程...

    前言 看了网上很多关于用linux操作系统搭建网站服务器的教程,于是我自己也测试了很多,但今天所测试的 Ubuntu 12.04下搭建Web网站服务器 (MySQL+PHP+Apache环境),感觉这 ...

  2. 11.LVS调度器详解

    1. 集群和分布式 系统性能扩展方式: scale up:垂直扩展,向上扩展,增强,性能更强 scale out:水平扩展,向外扩展,增加设备,并行的运行多个服务调度分配问题,cluster 1.1 ...

  3. LVS调度器(未完成)

    LVS(Linux Virtual Server)调度器 集群和分布式介绍 LVS(Linux Virtual Server)的功能 作为IO调度器的角色,将请求转发到相对空闲的节点,提升处理性能,节 ...

  4. linux下网站服务器,Linux下使用Apache搭建Web网站服务器(示例代码)

    [[email protected] ~]# yum install elinks –y 主配置文件 [[email protected] ~]# ls/etc/httpd/conf/httpd.co ...

  5. html5 php服务器搭建,使用Apache 搭建web 网站服务器

    1  )  安装httpd yum  -y  install   httpd 2 )  查看目录 3 )配置文件 4 )  默认是没有启动的 5 5)  开始启动apache 并设置开机自启动 6 ) ...

  6. win环境20分钟搭建php+sql服务器Apache+php+mysql在windows下的安装与

    Apache+php+mysql在windows下的安装与配置图解 先准备好软件: Apache官方下载地址:apache_2.0.55-win32-x86-no_ssl.msi,http://mir ...

  7. 使用ansible自动化搭建LNMP应用平台

    1. 最终效果及说明 1)主机说明: ansible: 192.168.20.121 webserver: 192.168.20.122 2)最终访问效果如下 结果与test2.php里边的内容一致, ...

  8. Ubuntu 12.04下搭建Web服务器 (MySQL+PHP+Apache)(转)

    看了网上很多关于用linux操作系统搭建网站服务器的教程,于是我自己也测试了很多,但今天所测试的 Ubuntu 12.04下搭建Web网站服务器 (MySQL+PHP+Apache环境),感觉这个适合 ...

  9. lvs负载均衡调度器

    lvs简介 lvs(Linux Virtual Server):linux虚拟服务器.它是一款强大的基于ip的数据请求负载均衡调度器:终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web ...

最新文章

  1. 对gitShell的使用
  2. Android动画 详解(一 补间动画)
  3. 一文梳理JavaScript中常见的七大继承方案
  4. KNN 算法--图像分类算法
  5. boot sprint 项目结构_Spring Boot 项目结构
  6. 《南溪的目标检测学习笔记》——目标检测模型的设计笔记
  7. SOA面向服务架构简述
  8. Oracle Dataguard 管理命令
  9. 面向对象进阶4:软件开发规范
  10. I2C通信基本原理以及使用C语言实现,用I2C通信实现点亮一盏小灯(包含应答)---c语言...
  11. win10安装vc2015失败,尝试解决方案,目前有效
  12. vue省市区三级联动-封装集成
  13. 米4android6.0 root,小米4怎么root权限获取?miui6获取root权限方法
  14. 网络营销中促销的含义、特点和功能
  15. 苹果所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程
  16. 【文献阅读2020】 像素级自适应学习的超分辨率Pixel-Level Self-Paced Learning For Super-Resolution
  17. Python——下载音乐(干货)
  18. 开发落网电台windows phone 8应用的计划(7)
  19. uniapp与微信小程序的区别
  20. 【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数

热门文章

  1. 篮球数据API接口 - 【篮球赛事分析数据】API调用示例代码
  2. 如何在G502中实现anywhere滚轮左右长移效果
  3. 对话“未知的边界”元宇宙艺术展 | Layaverse 邀您体验次元畅享艺术之美
  4. EXCEL表格如何实现隔行填充颜色
  5. linux配置pcie无线网卡,【Linux c】读写pcie配置空间(安装lib库)
  6. 【已解决】华为手机短接后有提示音但在其他设备里显示未知设备或者USB-SER怎么办 | 华为荣耀手机短接后未知设备里面出现“USB-SER” 端口如何解决
  7. 计算机培训word,最新计算机培训word资料.pptx
  8. 读取本地相册 兼容了小米
  9. jzoj(senior)4208. 【五校联考1day1】线段树什么的最讨厌了
  10. Android项目实战--【谁是歌手-布局篇】