半自动脚本部署LNMP、部署ansible、以及用ansible批量部署LNMP(在本人虚拟环境中已测试,部署成功)

it2024-03-21  77

文章目录

1.部署LNMP的脚本2.部署ansible的脚本3.使用ansible批量部署lnmp环境

1.部署LNMP的脚本
#! /bin/bash # 注:使用本脚本需要确保/usr/local/src/下有对应版本的nginx包(默认1.19.0) # 部署epel源 if [ ! -f "/etc/yum.repos.d/epel.repo" ];then wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo fi # 准备环境、安装依赖 cd /usr/local/src/ tar -zxf nginx-1.19.0.tar.gz cd nginx-1.19.0/ useradd nginx -s /sbin/nologin -M yum -y install gcc gcc-c++ make pcre-devel openssl-devel # 编译、安装nginx ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-stream \ --with-http_stub_status_module \ --with-http_ssl_module make && make install # 启动nginx、设置开机自启 cat > /lib/systemd/system/nginx.service <<-EOF [Unit] Description=nginx service After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop PrivateTmp=true [Install] WantedBy=multi-user.target EOF systemctl start nginx systemctl enable nginx # 安装、启动php-fpm yum -y install php php-fpm php-mysql mariadb-devel systemctl start php-fpm systemctl enable php-fpm # 安装、启动mariadb yum -y install mariadb mariadb-server mariadb-devel systemctl start mariadb systemctl enable mariadb # 配置动静分离 cd /usr/local/nginx/conf/ sed -i '45i\ index index.php index.html index.htm;' nginx.conf sed -i '46d' nginx.conf sed -i '65,71s/#//' nginx.conf sed -i '69s/^/#/' nginx.conf sed -i '70s/_params/.conf/' nginx.conf systemctl restart nginx
2.部署ansible的脚本
#! /bin/bash # 注:使用此脚本需要 1.修改主机名解析 2.自定义ansible运行目录及主机清单 # 1.部署epel源 if [ ! -f "/etc/yum.repos.d/epel.repo" ];then wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo fi # 2.安装ansible yum -y install ansible # 3.配置主机名解析 cat >> /etc/hosts <<-EOF 192.168.248.133 vm2 192.168.248.134 vm3 192.168.248.135 vm4 192.168.248.136 vm5 192.168.248.137 vm6 192.168.248.138 vm7 EOF # 4.配置ssh密钥验证 ssh-keygen -f /root/.ssh/id_rsa -N '' for i in vm2 vm3 vm4 vm5 vm6 vm7 do ssh-copy-id root@$i done # 5.初始化ansible至家目录 mkdir -p /root/ansible/{roles,playbooks} cat >> /root/ansible/ansible.cfg <<-EOF # 主配置文件 [defaults] inventory = /root/ansible/hosts roles_path = /root/ansible/roles EOF cat >> /root/ansible/hosts <<-EOF # 主机清单 [webserver] vm4 vm5 EOF
3.使用ansible批量部署lnmp环境
#! /bin/bash # 注:使用此脚本需要手动选择对应版本的nginx包(默认1.19.0) # 1.创建ansible角色 mkdir -p /root/ansible/roles/lnmp/tasks mkdir -p /root/ansible/roles/lnmp/files cat >> /root/ansible/roles/lnmp/tasks/main.yml <<-EOF --- - name: 拷贝nginx安装包 copy: src: nginx-1.19.0.tar.gz dest: /usr/local/src/ - name: 执行脚本 script: creates=/usr/local/nginx/conf/nginx.conf # 目的主机中,存在该文件则不执行 # removes=/root/scripts/lnmp_install.sh # 目的主机中,不存在该文件则不执行 /root/scripts/lnmp_install.sh # 脚本名,需要执行权限 EOF # 2.上传nginx安装包至角色中 cd ~/ansible/roles/lnmp/files rz # 选择对应nginx版本上传 # 3.创建剧本,调用角色 cat >> /root/ansible/playbooks/lnmp.yml <<-EOF --- - hosts: webserver # 指定主机 roles: - lnmp EOF # 4.运行剧本 cd /root/ansible ansible-playbook /root/ansible/playbooks/lnmp.yml
最新回复(0)