個人比較喜歡在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”