基于roles的方式定义安装配置LAMP平台
实验拓扑图安装ansible
1
# yum -y install ansible
修改/etc/ansible/hosts配置文件
1
# vim /etc/ansible/hosts
1
2
3
4
172.16.115.101
172.16.115.102
172.16.115.103
由于ansible通过ssh实现配置管理、应用部署、任务执行等功能,因此需要先配置ansible端能基于秘钥认证的方式联系各个被管理的主机
1
2
3
# ssh-keygen -t rsa -P ''
# ansible hbhosts --module-name=copy --args='src=/root/.ssh/id_rsa.pub
dest=/root/.ssh/authorized_keys owner=root group=root mode=600' --ask-pass
创建以roles命名的目录
1
# mkdir -pv /root/lamp/roles
正式安装LAMP平台前,需要做一些初始化的工作,在roles目录下创建comman目录来存放初始化所需要的文件和任务
1
2
# cd /root/lamp/roles
# mkdir -pv common/{files,tasks}
提供测试页面文件
1
# vim common/files/index.php
1
2
3
4
5
6
7
8
9
10
$link = mysql_connect('127.0.0.1','root','');
if ($link)
echo "Success...";
else
echo "Failure...";
mysql_close();
phpinfo();
?>
提供时间同步任务和复制测试文件
1
# vim common/tasks/main.yaml
1
2
3
4
- name: sync time
cron: name="sync time" minute="*/3" job="/usr/sbin/ntpdate 172.16.0.1 &> /dev/null"
- name: page file
copy: src=index.php dest=/var/www/html
安装lamp平台需要安装http、php、mysql-server、php-mysql,因此需要提供安装这些程序的任务
1
# mkdir -pv lamp/{files,tasks}
提供安装lamp平台任务和启动lamp平台任务
1
# vim lamp/tasks/maim.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
- name: install lamp platform
yum: name={{ item }} state=present
with_items:
- httpd
- php
- mysql-server
- php-mysql
tags: inst
- name: start lamp
service: name={{ item }} state=started enabled=no
with_items:
- httpd
- mysqld
tags: start
提供用于ansible-playbook的文件
1
2
# cd /root/lamp
# vim lamp.yml
1
2
3
4
5
6
- name: install and config lamp
remote_user: root
hosts: hbhosts
roles:
- common
- lamp
安装整个lamp平台
1
# ansible-playbook lamp.yml
测试是否安装成功
在浏览器中分别键入172.16.115.101、172.16.115.102、172.16.115.103,都可以得到如下结果
页:
[1]