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论坛

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...