ansible+shell脚本搭建wordpress论坛
admin
2023-03-10 11:21:10
0

                                           ansibler+shell脚本搭建wordpress论坛

ansible作为自动化运维工具,功能模块很多,配合shell脚本可以更好的进行自动化的部署。

环境:

192.168.0.9   #需要部署的LNMP+wordpress的机器

192.168.0.11 #ansible


ansible配置

[root@localhost ansible]# egrep "^[^#]" /etc/ansible/hosts 

[lnmp]

192.168.0.9


php配置文件

lnmp_install文件


软件版本:

nginx 1.81

mysql 5.5 (yum 安装)

php 7.31

wordpress 4.7


ansible yaml文件代码:

- hosts: lnmp
  remote_user: root
  tasks:
  - name: "create install directory"
    file:
      path: /opt/lnmp
      state: directory
  - name: "copy nginx_tar.gz"
    copy:
      src: /opt/lnmp/nginx-1.8.1.tar.gz
      dest: /opt/lnmp
  - name: "start install nginx"
    script: /opt/lnmp/nginx_install.sh
  - name: "remove mariadb"
    yum: name=mariadb,mariadb-server state=absent
  - name: "install mariadb"
    yum: name=mariadb,mariadb-server  state=latest
  - name: "Adding fields to my.cnf"
    script: /opt/lnmp/mysql_admin.sh
  - name: "restart mysql"
    service: name=mariadb state=restarted
  - name: "create test databases"
    command: mysql -uroot -p123123 -e "drop database wordpress;create database wordpress;grant all privileges on wordpress.* to 'root'@'192.168.0.9' identified by '123123';flush privileges;"
  - name: "copy php tgz"
    copy:
      src: /opt/lnmp/php-7.3.1.tar.gz
      dest: /opt/lnmp
  - name: "script php install bash"
    script: /opt/lnmp/php_install.sh
  - name: "copy php-fpm.conf"
    template:
      src: /opt/lnmp/php_conf/php-fpm.conf
      dest: /usr/local/php7/etc/
  - name: "copy php.ini"
    template:
      src: /opt/lnmp/php_conf/php.ini
      dest: /usr/local/php7/
  - name: "copy wwww.conf"
    copy:
      src: /opt/lnmp/php_conf/www.conf
      dest: /usr/local/php7/etc/php-fpm.d/
  - name: "start php"
    script: /opt/lnmp/php_restart.sh
  - name: "wordpress.tar.gz copy"
    unarchive:
      src: /opt/lnmp/wordpress-4.7.4-zh_CN.tar.gz
      dest: /var/www/php
      mode: 0777
      owner: nobody
      group: nfsnobody

nginx_install.sh代码

#!/bin/bash
##this is nginx install bash
nginx_tar=/opt/lnmp/nginx*.gz
ng_path=/opt/lnmp
if [ -e $nginx_tar ];then
tar zxvf $nginx_tar -C $ng_path
else
echo "nginx.tar.gz does not exist"
fi
#yum
yum install -y gcc gcc-c++ autoconf gd-devel automake zlib zlib-devel openssl openssl-devel pcre*
if [ ! $? -eq 0 ];then
     echo "error yum install"
     exit 1
fi
sleep 5
#configure
cd /opt/lnmp/nginx*
 ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_image_filter_module \
--with-http_stub_status_module
if [ $? -eq 0 ];then
make && make install
fi
#create nginx user
id nginx
if [ ! $? -eq 0 ];then
   useradd -M -s /sbin/nologin nginx
else
   userdel -r nginx
   useradd -M -s /sbin/nologin nginx
fi
#Modify configuration files
nginx_conf_path=/usr/local/nginx/conf/nginx.conf
cat >${nginx_conf_path} < ${www_path}/test.html
#check nginx pid
nginx_pid=`pgrep nginx | wc -l`
if [ $nginx_pid -eq 0 ];then
  /usr/local/nginx/sbin/nginx
  echo "nginx has started...."
else
  killall nginx
  /usr/local/nginx/sbin/nginx
  echo "nginx has restart..."
fi

php_install.sh代码

#!/bin/bash
##PHP install script
#Tar php.tgz
php_tar=/opt/lnmp/php*.gz
configure_path=/opt/lnmp
if [ -e $php_tar ];then
   tar zxvf  $php_tar -C $configure_path
else
  echo "php*.tar.gz does not exist...."
  exit 1
fi
#create php user
id php
if [ ! $? -eq 0 ];then
  useradd -M -s /sbin/nologin php
else
  userdel -r php
  useradd -M -s /sbin/nologin php
fi
#yum
yum install libxml2 libxml2-devel -y
#configure
cd /opt/lnmp/php*
./configure \
--prefix=/usr/local/php7 \
--with-pdo-mysql=/opt/mysql \
--enable-mysqlnd \
--with-pdo-mysql=mysqlnd \
-with-mysqli=mysqlnd \
--with-mysql-sock=/tmp/mysql.sock \
--with-config-file-path=/usr/local/php7 \
--enable-fpm \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-gd
#make install
if [ ! $? -eq 0 ];then
   echo "make install error,please check configure"
else
  make && make install
fi

php_restart.sh 代码

#!/bin/bash
php_pid=`pgrep php-fpm | wc -l`
if [ $php_pid -eq 0 ];then
   /usr/local/php7/sbin/php-fpm
else
  killall php-fpm
   /usr/local/php7/sbin/php-fpm
fi


mysql_admin.sh 代码

#!/bin/bash
sed -ri "1a skip-grant-tables" /etc/my.cnf
systemctl restart mariadb
sleep 3
mysql -uroot -e "use mysql;update user set password=password('123123') where user='root'; flush privileges;"
sed -ri "2d" /etc/my.cnf


安装完成后访问 http://192.168.0.9/wordpress/wp-admin 配置wordpress

填写完数据库用户名密码之后(数据库主机localhost不好使,就使用IP地址),安装完成,以下为登陆界面

ansible+shell脚本搭建wordpress论坛

相关内容

热门资讯

女子打车遇“最炫出租车”,网友... 极目新闻记者 王柳钦近日,有网友发视频称,她和朋友在吉林长春乘坐出租车时,意外坐上了一辆改装有绚丽星...
【第一资讯】“衡阳十胡卡.辅助... 有 亲,根据资深记者爆料衡阳十胡卡是可以开挂的,确实有挂(咨询软件无需打...
“将首都从莫斯科迁往西伯利亚”... 【环球网报道 记者 张江平】据俄新社23日报道,俄罗斯总统办公厅副主任马克西姆·奥列什金在出席一场科...
终于懂了“情怀娱乐.开挂神器?... 家人们!今天小编来为大家解答情怀娱乐透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
终于明白“天府红桃3.辅助器?... 您好:天府红桃3这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游...
重磅消息“情怀娱乐.到底有挂吗... 您好:情怀娱乐这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
【第一资讯】“新皇豪炸金花.到... 有 亲,根据资深记者爆料新皇豪炸金花是可以开挂的,确实有挂(咨询软件无需...
【第一资讯】“西兵互娱牛牛.到... 您好:西兵互娱牛牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款...
重磅消息“情怀娱乐.可以开挂吗... 重磅消息“情怀娱乐.可以开挂吗?”太坑了原来有挂您好,情怀娱乐这个游戏其实有挂的,确实是有挂的,需要...
长征十二号甲火箭首飞入轨成功,... 12月23日,卫星板块巨幅调整。数据显示,截至14时39分,卫星产业ETF(159218)跌5.17...