千家信息网

ansible+shell脚本搭建wordpress论坛

发表于:2025-02-20 作者:千家信息网编辑
千家信息网最后更新 2025年02月20日,ansibler+shell脚本搭建wordpress论坛ansible作为自动化运维工具,功能模块很多,配合shell脚本可以更好的进行自动化的部署。环境:192.168.0.9 #需要部署的LNM
千家信息网最后更新 2025年02月20日ansible+shell脚本搭建wordpress论坛

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 bashnginx_tar=/opt/lnmp/nginx*.gzng_path=/opt/lnmpif [ -e $nginx_tar ];thentar zxvf $nginx_tar -C $ng_pathelseecho "nginx.tar.gz does not exist"fi#yumyum 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 1fisleep 5#configurecd /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_moduleif [ $? -eq 0 ];thenmake && make installfi#create nginx userid nginxif [ ! $? -eq 0 ];then   useradd -M -s /sbin/nologin nginxelse   userdel -r nginx   useradd -M -s /sbin/nologin nginxfi#Modify configuration filesnginx_conf_path=/usr/local/nginx/conf/nginx.confcat >${nginx_conf_path} < ${www_path}/test.html#check nginx pidnginx_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.tgzphp_tar=/opt/lnmp/php*.gzconfigure_path=/opt/lnmpif [ -e $php_tar ];then   tar zxvf  $php_tar -C $configure_pathelse  echo "php*.tar.gz does not exist...."  exit 1fi#create php userid phpif [ ! $? -eq 0 ];then  useradd -M -s /sbin/nologin phpelse  userdel -r php  useradd -M -s /sbin/nologin phpfi#yumyum install libxml2 libxml2-devel -y#configurecd /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 installif [ ! $? -eq 0 ];then   echo "make install error,please check configure"else  make && make installfi

php_restart.sh 代码

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


mysql_admin.sh 代码

#!/bin/bashsed -ri "1a skip-grant-tables" /etc/my.cnfsystemctl restart mariadbsleep 3mysql -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地址),安装完成,以下为登陆界面

0