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} <<EOF worker_processes auto; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root /var/www/php; index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { root /var/www/php; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; include fastcgi_params; } } } EOF #create root document www_path=/var/www/php if [ ! -d "$wwww_path" ];then mkdir -p ${www_path} fi #create test index html echo "this is nginx test html" > ${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地址),安装完成,以下为登陆界面
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。