Docker部署wordpress:
需要運行兩個容器,一個mysql容器一個wordpress容器,他們都有自帶的一些變量,方便我們去部署他們
##############################################################################
mysql鏡像內置變量
MYSQL_ROOT_PASSWORD
MYSQL_USER
MYSQL_PASSWORD
MYSQL_DATABASE
創建MySQL容器
docker run --name mysql -d -p 3306:3306 -v data:/var/lib/mysql \
> -e MYSQL_ROOT_PASSWORD=123 \
> -e MYSQL_DATABASE=wordpress \
> -e MYSQL_USER=tom \
> -e MYSQL_PASSWORD=123456 --restart always 10.30.5.120/docker/mysql:5.6
##############################################################################
wordpress鏡像內置的變量
WORDPRESS_DB_HOST \\MySQL數據庫主機ip地址
WORDPRESS_DB_PORT \\Mysql服務的端口
WORDPRESS_DB_NAME \\數據庫的名字
WORDPRESS_DB_USER \\登錄MySQL的用戶
WORDPRESS_DB_PASSWORD \\登錄用戶密碼
創建wordpress容器
docker run --name wordpress -d -p 80:80 \
> -e WORDPRESS_DB_HOST=192.168.189.171 \
> -e WORDPRESS_DB_NAME=wordpress \
> -e WORDPRESS_DB_USER=tom \
> -e WORDPRESS_DB_PASSWORD=123456 --restart always --link mysql 10.30.5.120/docker/wordpress
部署wordpress:
劇本運行前語法:
檢查語法:ansible-playbook --syntax-check + name.yaml
列出執行任務: ansible-playbook --list-task + name.yaml
查看運行的主機: ansible-playbook --list-hosts + name.yaml
---
- hosts: webservers
tasks:
- name: "推送Nginx"
unarchive:
src: nginx-1.11.2.tar.gz
dest: /root/
- name: "安裝gcc和php環境"
yum:
name: gcc,pcre-devel,zlib-devel,php,php-mysql,php-fpm,mysql,mysql-server,unzip
state: latest
- name: "編譯安裝nginx"
shell: cd /root/nginx-1.11.2 && ./configure && make && make install
- name: "關閉防火牆"
service:
name: iptables
state: stopped
- name: "關閉selinux"
shell: setenforce 0
- name: "啓動mysql"
service:
name: mysqld
state: started
enabled: yes
- name: "啓s動php-fpm"
service:
name: php-fpm
state: started
enabled: yes
- name: "推送nginx配置文件"
copy:
src: nginx.conf
dest: /usr/local/nginx/conf/nginx.conf
- name: "重新載入nginx"
tags: config-nginx
shell: /usr/local/nginx/sbin/nginx -s reload
- name: "推送wordpress"
tags: config-nginx
unarchive:
src: wordpress-4.9.4-zh_CN.zip
dest: /usr/local/nginx/html
mode: 0777
- name: "創建數據庫和用戶"
tags: config-nginx
shell: mysql -e "create database if not exists wordpress charset utf8;" && mysql -e "grant all on wordpress.* to tom@'localhost' identified by '123';"