Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7097889
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 系统运维

2015-10-09 07:05:50

Ansible批量搭建LAMP环境

[日期:2014-10-20] 来源:Linux社区  作者:cshang [字体:  ]

对于大批量部署服务时,可能要扛着键盘到每台主机或是每个都ssh连上去,大量的时间耗费在这上面,岂不可惜,由于批量部署的自动化工具的出现,节省了我们 大量的时间,其中,它们的原理主要是利用ssh协议或是使用ssl的https,使用ssl的这种,它们需要在客户端安装agent,而利用ssh的 ansible就不需要了,可以在控制端执行一个脚本,可以实现将任意多个主机都批量部署上你所需要安装的服务。

下面的实验,实现批量的部署LAMP环境搭建(在一台主机上)

拓扑图如下


后端的被控制节点,我只用了两台,可以自己取多台,上面的yum源和时间服务器在同一台主机上,在两个节点上,再添加两块硬盘,作为MySQL的二进制日志存放和数据存放,挂载等操作也会在ansible上行。

--------------------------------------分割线 --------------------------------------

CentOS 6.5安装配置LAMP 

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 

CentOS 5.9下编译安装LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) 

RedHat 5.4下Web服务器架构之源码构建LAMP环境及应用PHPWind 

LAMP源码环境搭建WEB服务器Linux+Apache+MySQL+PHP 

基于Ubuntu 的LAMP 优化加固 

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境 

--------------------------------------分割线 --------------------------------------

首先,我们可以在ansible服务器上安装LAMP环境,然后,再将配置文件通过ansible拷贝到远程主机上

第一步:安装httpd软件

[root@node1 ~]# yum install httpd

第二部:安装MySQL

[root@node1 ~]# yum install mysql-server

此时,我们要创建两个目录,同时,要挂载两个逻辑卷,作为数据存放和二进制日志存放位置

[root@node1 ~]# mkdir -pv /mydata/{binlogs,data}    #后端的两个节点,都另外加了磁盘改变其属组和属主

[root@node1 ~]# chown -R mysql:mysql /mydata/

编辑配置文件

[root@node1 ~]# vim /etc/my.cnf

datadir=/mydata/data    #改变数据存放目录

log-bin=/mydata/binlogs/mysql-bin      #添加此项,指定二进制日志存放位置

启动MySQL服务

[root@node1 ~]# service mysqld start


第三步:安装PHP服务

[root@node1 ~]# yum install php

第四步:安装PHP和MySQL的交互所用到的模块

[root@node1 ~]# yum install php-mysql


第五步:更改httpd的配置文件,使其能够解析PHP

添加下面选项

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

DirectoryIndex index.html index.php  index.html.var    #添加主持php主页


第六步:提供php的测试页

[root@node1 ~]# vim /var/www/html/index.php

<?php

    phpinfo();

?>

启动httpd服务,在浏览器中访问

[root@node1 ~]# service httpd start

确保已经出现上面的测试页,而且,要看到MySQL已经被整合进来了,才能进行下一步操作

在node1上安装ansible服务

[root@node1 ~]# yum install ansible

此时,我们再加入两个干净的CentOS6.5的主机,同时,这两台主机还有两块空闲的硬盘/dev/sdb和/dev/sdc,建立一个分区,sdb1和sdc1(使用fdisk)

将原来的ansible的hosts文件备份,在文件中定义上面加入的两台主机,即要做批量安装的主机

[root@node1 ~]# cd /etc/ansible/

[root@node1 ansible]# cp hosts hosts.bak

[root@node1 ansible]# vim hosts

[nodes]    #定义组,名为nodes

192.168.81.130

192.168.81.131


然后,ansible和两个节点间通过ssh进行连接

[root@node1 ~]# ssh-keygen -t rsa -P ''    #生成密钥对

将公钥信息复制到被控制节点(两个节点上)

[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.81.130


开始我们的playbook吧,创建一个LAMP构建的任务

[root@node1 ~]# mkdir -pv lamp/roles/{prepare,httpd,mysql,php}/{tasks,files,templates,vars,meta,default,handlers}


我们将上面搭建成功的LAMP环境的httpd和MySQL的配置文件拷贝到对应目录下

[root@node1 ~]# cp /etc/httpd/conf/httpd.conf lamp/roles/httpd/files/

[root@node1 ~]# cp /etc/my.cnf lamp/roles/mysql/files/

对于批量部署的状况,我们会使用到yum安装软件,这里,我自己有一台yum服务器,所以,

我要将被控制端的yum源指向到我的yum服务器,而且,各服务器要保持时间一致

[root@node1 roles]# vim prepare/tasks/main.yml

- name: provide yumrepo file

  shell: rm -f /etc/yum.repos.d/*.repo        #删除原有的yum配置文件

  shell: wget   #下载新的yum配置文件

- name: clean the yum repo

  shell: yum clean all    #清除原有的yum缓存信息

- name: sync the time

  cron: name="sync time" minute="*/5" job="/usr/sbin/ntpdate 192.168.81.128 &> /dev/null"

#同步时间,保证两台后端节点的时间一致性

更多详情见请继续阅读下一页的精彩内容: 

阅读(1601) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~