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

相关内容

热门资讯

“红霞”在登陆前为何爆发式增强... 昨天下午到夜间,台风“红霞”在近海岸登陆前,强度仍爆发式增强,从台风级加强为强台风级,中心附近最大风...
AI海上找鱼提升产量15%,下... 渔民出海捕鱼,以前赌的是经验和风浪。现在,可以依靠数据和算法。人工智能入局渔业,AI找鱼一找一个准。...
台风“红霞”一日连跳三级,将深... 今天(26日)凌晨3点50分前后,今年第12号台风“红霞”以强台风级登陆广东惠州市惠东县平海镇沿海,...
台风“红霞”以巅峰强度在惠州登... 今年第12号台风“红霞”(强台风级)的中心已于26日03时50分前后在广东省惠州市惠东县平海镇登陆,...
直击台风“红霞”登陆:楼在动,... 7月26日凌晨4时,惠东县小径湾。记者此刻正在一栋临海高层楼房的客厅里,双腿微微发颤——不是因为冷,...
人民日报:查处携程垄断案释放反... 林丽鹂 《人民日报》(2026年07月26日 第02版)携程垄断案的查处是平台经济反垄断常态化监管的...
以总理计划向特朗普递交伊朗情报 △以色列总理内塔尼亚胡(资料图)当地时间7月25日,总台记者自以色列方面获悉,以总理内塔尼亚胡及其访...
原创 手... 以前购买的手机想要用3天不充电,基本上是不可能的,但这两年手机电池技术有大突破,非重度使用的情况下,...
咪咕数媒亮相第34届全国图书交... 潮新闻客户端 记者 王景平 7月24日,第34届全国图书交易博览会盛大举办。作为数字文化领域的核心央...
王兴兴和他的机甲机器人登上《时... 当地时间7月23日,宇树科技创始人兼首席执行官王兴兴与该公司突破性的载人机甲机器人GD01共同登上美...