个人比较喜欢在eclipse上写代码
代码发布流程未1. eclipse—>gitee. 2. ansible—>gitee. 3.ansible—>mysite服务器组
利用ansible批量安装LAMP
1.定义需要安装的目标主机
编辑/etc/ansible/hosts
添加
[mysite]
192.168.252.10
192.168.252.11
192.168.252.12
2.创建eclipse项目,根据ansible roles目录要求创建好对应的目录及文件

3.编辑对于的yml
playbook配置
创建一个lamp.yml的playbook
内容:
- hosts: mysite
remote_user: root
roles:- httpd
- mysql
- php
http服务安装及配置
files:下面创建httpd.conf 以及phpinfo.php文件
httpd.conf文件根据模板只更改了用户位www
工作目录还是默认的/var/www/html 。phpinfo.php文件就将拷贝到该目录以便验证php
handlers目录 创建main.yml 内容为:
- name: restart apache
service: name=httpd state=restarted
当httpd.conf文件变更时重启httpd服务
tasks目录创建main.yml 内容为:
-
name: HTTPD安装
yum: name={{item}} state=latest
with_items:- httpd
- httpd-devel
-
name: 创建用户
user: name={{user}} state=present -
name: HTTPD服务管理
service: name=httpd enabled=yes state=started -
name: HTTPD配置文件变更
copy: src=/soft/test/Ansible_LAMP/httpd/files/httpd.conf dest=/etc/httpd/conf
notify:- restart apache
-
name: PHPINFO
copy: src=/soft/test/Ansible_LAMP/httpd/files/phpinfo.php dest=/var/www/html
vars目录创建main.yml 内容为:
user: www
mysql服务的安装及配置
tasks目录创建main.yml 内容为:
-
name: Mysql安装
yum: name={{item}} state=latest
with_items:- mariadb
- mariadb-server
- mariadb-libs
- mariadb-devel
-
name: Mysql用户创建
user: name={{user}} state=present -
name: Mysql服务管理
service: name=mariadb enabled=yes state=started -
name: mysql执行权限更改
file: path=’/usr/lib/mysql’ owner={{user}} group={{user}} recurse=yes
vars目录创建main.yml 内容为:
user: mysql
php服务的安装及配置
tasks目录创建main.yml内容为:
- name: PHP安装
yum: name={{item}} state=latest
with_items:- php
- php-mysqlnd
- php-gd
- php-ldap
- php-odbc
- php-pear
- php-xml
- php-xmlrpc
- php-mbstring
- php-snmp
- php-soap
- curl
- curl-devel
- php-bcmath
- php-fpm
没有说明内容的main.yml文件 根据ansible roles的要求 在对应的目录下创建了main.yml的空文件。
4.上传到gitee
上传配置这里不介绍,可以百度
5.ansible管理机下载代码
git clone https://gitee.com/abel127/Ansible_lamp.git
后续更新
git pull https://gitee.com/abel127/Ansible_lamp.git
将代码下载到了管理机上
6.测试
ansible-playbook -C lamp.yml
没有问题。 我已经安装过了所以都是绿色,如果是没有安装的都是黄色就OK
执行ansible-playbook lamp.yml安装
7.访问服务器
三台服务器都可以正常访问服务
记得关闭下防火墙和iptables
ansible mysite -a “iptables -F”
ansible mysite -a “systemctl stop firewalld”