ansible 配置jspgou商城上线(MySQL版)

准备环境

准备两台纯净的服务器进行,在实验之前我们关闭防火墙和selinux

systemctl stop firewalld    #关闭防火墙
setenforce 0        #临时关闭selinux

hosts解析(两台服务器都要去做)

[root@ansible-server ~]# vim /etc/hosts
10.31.162.24    ansible-server
10.31.162.25    ansible-web

安装ansible

10.31.162.24
安装:控制节点1. 配置EPEL网络yum源[root@ansible-server ~]# yum install -y epel*2. 安装ansible[root@ansible-server ~]# yum install -y ansible3.查看版本[root@ansiable-server ~]# ansible --version4.查看配置文件:
[root@ansible-server ~]# rpm  -qc ansible
---1.主配置文件:/etc/ansible/ansible.cfg  #主要设置一些ansible初始化的信息,比如日志存放路径、模块、插件等配置信息
---2.主机清单文件:默认位置/etc/ansible/hosts

安装nginx

# 配置nginx源
[root@ansible-server ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
# 下载nginx
[root@ansible-server ~]# yum install -y nginx
[root@ansible-server ~]# systemctl start nginx
[root@ansible-server ~]# systemctl enable nginx

上传压缩包

将下载好的jdk、tomcat、jspgou,上传到server机器上
# 也可以直接官网下载
apache-tomcat-9.0.83.tar.gz
jdk-8u321-linux-x64.tar.gz
jspgouV6.1-ROOT.zip# jspgou包是gz的包,需要解压重新压缩才可以用,只能用tar包
[root@ansible-server ~]# yum -y install unzip
[root@ansible-server ~]# unzip jspgouV6.1-ROOT.zip
[root@ansible-server ~]# tar zcvf jspgou.tar.gz DB ROOT
[root@ansible-server ~]# ls
DB ROOT
[root@ansible-server ~]# tar zcvf jspgouv6.1.tar.gz DB ROOT
jspgouv6.1.tar.gz

添加主机

# 添加主机清单
[root@ansible-server ~]# vim /etc/ansible/hosts
[jspgou]
ansible-web# 其他语法
1.添加主机或者主机组:
[root@ansible-server ~]# vim /etc/ansible/hosts  #在最后追加被管理端的机器
ansible-web1                      #单独指定主机,可以使用主机名称或IP地址
2.添加主机组:
[webservers]        #使用[]标签指定主机组 ----标签自定义
192.168.10.11        #如果未解析添加ip
ansible-web2      #解析添加主机名
3.组可以包含其他组:
[webservers1]     #组一
ansible-web1
[webservers2]     #组二
ansible-web2
[weball:children]      #caildren-照写 #weball包括两个子组
webservers1        #组一
webservers2        #组二
4.为一个组指定变量,组内每个主机都可以使用该变量:
[weball:vars]         #设置变量,vars--照写
ansible_ssh_port=22     
ansible_ssh_user=root   
ansible_ssh_private_key_file=/root/.ssh/id_rsa  
#ansible_ssh_pass=1      #也可以定义密码,如果没有互传秘钥可以使用密码。

配置ssh密钥

配置ssh公钥认证:控制节点需要发送ssh公钥给所有非被控制节点
[root@ansible-server ~]# ssh-keygen
[root@ansible-server ~]# ssh-copy-id -i 10.31.126.25  #所有机器

配置剧本

# 在vars目录里配置file.yml配置文件
[root@ansible-server ~]# vim /etc/ansible/vars/file.yml
src_gou_path: /root/jspgouv6.1.tar.gz
src_jdk_path: /root/jdk-8u321-linux-x64.tar.gz
src_tomcat_path: /root/apache-tomcat-9.0.83.tar.gz
dest_gou_path: /root
dest_jdk_path: /root
dest_tomcat_path: /root#配置安装MySQL脚本
[root@ansible-server ~]# vim /etc/ansible/jsp.sh
#!/bin/bash
PASS_WORD="Qianfeng@123"
#配置源
cat >> /etc/yum.repos.d/mysql.repo <<EOF
[mysql]
name=mysql
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
gpgcheck=0
enabled=1
gpgkey=https://mirrors.ustc.edu.cn/mysql-repo/RPM-GPG-KEY-mysql
EOF
#下载mysql
yum repolist enabled | grep mysql
yum -y install mysql-community-server &> /dev/null
#启动
systemctl start mysqld && systemctl enable mysqld
#获取密码
TEMP_PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')
#修改密码
mysql -u root -p"${TEMP_PASSWORD}" --connect-expired-password <<EOF
ALTER USER 'root'@'localhost' IDENTIFIED BY "$PASS_WORD";
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF
#重启mysql
systemctl restart mysqld#赋予jsp.sh权限
[root@ansible-server ~]# cd /etc/ansible/
[root@ansible-server ansible]# chmod o+x jsp.sh# 在ansible目录里配置jspgou.yml配置文件
[root@ansible-server ~]# vim /etc/ansible/jspgou.yml
- hosts: jspgouuser: rootbecome: yesvars_files:- /etc/ansible/vars/file.ymltasks:- name: configure jdk1copy: src={{ src_jdk_path }} dest={{ dest_jdk_path }}- name: unzip jdkunarchive: src={{ dest_jdk_path }}/jdk-8u321-linux-x64.tar.gz dest=/usr/local/ copy=no- name: rename javashell: mv /usr/local/jdk1.8.0_321 /usr/local/java- name: configure jdk envirement1shell: echo "JAVA_HOME=/usr/local/java" >> /etc/profile- name: configure jdk envirement2shell: echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile- name: copy tomcatcopy: src={{ src_tomcat_path }} dest={{ dest_tomcat_path }}- name: unzip tomcatunarchive: src={{ dest_tomcat_path }}/apache-tomcat-9.0.83.tar.gz dest=/usr/local/ copy=no- name: rename tomcatshell: mv /usr/local/apache-tomcat-9.0.83 /usr/local/tomcat- name: rm -rf webappsshell: rm -rf /usr/local/tomcat/webapps/*- name: add /etc/profileshell: sed -i "2i source /etc/profile" /usr/local/tomcat/bin/startup.sh- name: add /etc/profile to shutdown.shshell: sed -i "2i source /etc/profile" /usr/local/tomcat/bin/shutdown.sh- name: copy jspgoucopy: src={{ src_gou_path }} dest={{ dest_gou_path }}- name: unzip jspgouunarchive: src={{ dest_gou_path }}/jspgouv6.1.tar.gz dest=/usr/local/tomcat/webapps copy=no- name: Modify MySQL user initial passwordscript: /etc/ansible/jsp.sh removes=/etc/passwd- name: enter MySQLshell: mysql -uroot -p'Qianfeng@123' -e "create database jspgou default charset=utf8;"- name: edit mysqldshell: sed -i 's/jdbc.password=/jdbc.password=Qianfeng@123/' /usr/local/tomcat/webapps/ROOT/WEB-INF/config/jdbc.properties- name: append mysqlshell: echo "max_allowed_packet= 64m" >> /etc/my.cnf- name: append mysql1shell: echo "sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUB" >> /etc/my.cnf- name: append mysql2shell: echo "explicit_defaults_for_timestamp=1" >> /etc/my.cnf- name: restart mysqld1shell: systemctl restart mysqld- name: Import datashell: mysql -uroot -p"Qianfeng@123" -D jspgou < /usr/local/tomcat/webapps/DB/jspgou.sql- name: restart mysql11shell: systemctl restart mysqldnotify: start jspgouhandlers:- name: start jspgoushell: nohup /usr/local/tomcat/bin/startup.sh &

配置nginx代理

# 备份原有配置文件
[root@ansible-server ~]#  cp default.conf default.conf.bak
# 添加jspgou.conf配置文件
[root@ansible-server ~]#  vim /etc/nginx/conf.d/jspgou.conf 
server {listen       80;server_name  localhost;location / {proxy_pass http://10.31.162.25:8080;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
# 重启nginx
[root@ansible-server ~]#  systemctl restart nginx

测试

直接访问代理服务器即可

看到该界面,我们的操作就成功了 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/601472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博客的简介

博客的简介 大家可以把这个当做目录&#xff0c;从中选择自己需要的内容进行阅览&#xff0c;欢迎大家一键三连&#xff01;&#xff01;&#xff01;&#xff01; 话题讨论专栏 点击进入话题讨论专栏 主要文章&#xff1a; 神奇的代码——可随意修改复制页面内容 Python…

力扣(leetcode)第383题赎金信(Python)

383.赎金信 题目链接&#xff1a;383.赎金信 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransomNote…

Mabatis中String类型传参常见问题和解决办法

一、在 MyBatis 的 XML 映射文件中&#xff0c;进行字符串比较时&#xff0c;需要使用单引号将字符串括起来&#xff0c;以表示字符串字面值。这是因为 MyBatis 的表达式语言中&#xff0c;使用单引号表示字符串字面值。 二、当使用双引号括起字符串时&#xff0c;MyBatis 会将…

系统安全及应用

1、基本安全措施 1.1、系统账号清理 在Linux系统中&#xff0c;除了用户手动创建的各种账号之外&#xff0c;还包括随系统或程序安装过程而生产的其他大量账号。除了超级用户root之外&#xff0c;其他大量账号只是用来维护系统运作、启动或保持服务进程&#xff0c;一般是不允…

C++学习笔记(二十五):c++ 智能指针

c中的内存的分配和释放是由程序员自己规划。智能指针不需要自己去delete一个new的对象&#xff0c;会自动释放对应的内存空间。unique_ptr&#xff1a;作用域指针&#xff0c;超出作用域后自动释放分配的内存区域。unique是指唯一&#xff0c;不能复制一个unique_ptr指针&#…

Java:Lambda表达式、方法引用

文章目录 1、Lambda表达式1.1 Lambda表达式体验1.2 Lambda表达式的省略形式1.3 Lambda表达式练习 2、方法引用体验3、方法引用符4、引用静态方法5、引用对象的实例方法6、引用类的实例方法7、引用构造方法8、引用数组的构造方法9、方法引用练习9.1 练习19.2 练习29.3 练习3 10、…

【测试开发】自动化测试selenium

文章目录 目录 文章目录 前言 一、自动化测试与selenium selenium介绍 二、如何使用selenium IDE录制脚本 1.安装Selenium IDE 2.seleniumpython环境搭建 3.webdriver API 前言 自动化测试指软件测试的自动化&#xff0c;在预设状态下运行应用程序或者系统&#xff0c;预设条…

优势演员-评论家算法 A2C

优势演员-评论家算法 A2C 优势演员-评论家算法 A2C主要思想目标函数 优势演员-评论家算法 A2C 前置知识&#xff1a;演员-评论家算法&#xff1a;多智能体强化学习核心框架 主要思想 AC 网络结构&#xff1a; 策略网络 - 演员: 这个网络负责根据当前的状态选择动作。它输出的是…

leetcode——杨辉三角

https://leetcode.cn/problems/pascals-triangle/ 杨辉三角&#xff1a; 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 核心思想&#xff1a;找出杨辉三角的规律&#xff0c;发…

案例098:基于微信小程序的电子购物系统的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

Apache Paimon:Streaming Lakehouse is Coming

摘要&#xff1a;本文整理自阿里云智能开源表存储负责人&#xff0c;Founder of Paimon&#xff0c;Flink PMC 成员李劲松&#xff08;花名&#xff1a;之信&#xff09;、同程旅行大数据专家&#xff0c;Apache Hudi & Paimon Contributor 吴祥平、汽车之家大数据计算平台…

(一)为什么要选择C++

如果要说C的优点&#xff0c;大部分人可能会说C 跨平台&#xff0c;性能好&#xff0c;如果要说C缺点那估计很多人可以说出一大堆。 没有官方包管理工具没有官方构建工具&#xff0c;虽然cmake 横空出世&#xff0c;有一统江湖的趋势&#xff0c;但是很多项目还是没有cmake支持…

JavaScript-变量数据类型-笔记

1.变量的使用 ① 先声明 再赋值 声明&#xff1a;var 变量名 在声明时不知道数据类型 赋值&#xff1a;变量名 值 在赋值时 知道数据类型 ② 初始化&#xff1a; 在声明变量时 就进行赋值 var 变量名 值 2.变量名在使用时 不能加引号 3…

18.Linux Shell中的mktemp命令使用

文章目录 Linux Shell创建临时文件在工作目录创建临时文件在/tmp 目录创建临时文件3)创建临时目录 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; Linux Shell创建临时文件 Linux的/tmp目录用来存放不需要永久保留的文件。大多数Linux发…

前置判断-Detection

检测模型回答存在幻觉可以通过检索外部知识进行校验&#xff0c;不过考虑生成式模型覆盖问题的广泛性&#xff0c;Self-Contradictory论文中评估chatgpt生成的回答中38.5%的内容无法通过Wiki等外部知识进行校验。 因此这里我们先介绍一种完全基于模型自身&#xff0c;不依赖外…

PCL 切片法实现点云模型的体积测量、面积测量(二)

目录 一、算法概述二、代码示例三、结果示例接上篇 PCL 点云模型的体积测量、面积测量(一) 一、算法概述 适用:通过VTK进行切片法,实现点云模型的体积测量、面积测量。 思路:1. 首先,使用vtk中的vtkPlane类来设置切割平面;2. 再使用vtk中的vtkCutter类切割vtkPolyData;…

多线程第一课---

UML中规定的箭头方向是从子类指向父类。 关于这一点&#xff0c;按照以下方法去理解有助于大家记住这条规则。 在定义子类时需要通过extends关键字指定父类。因此&#xff0c; 子类一定要知道父类的定义&#xff0c;而反过来&#xff0c;父类并不知道子类的定义。 只有在知道对…

51单片机串行口相关知识

51单片机串行口相关知识 串行通信概念 计算机与外部通信方式就两种&#xff1a; 并行通信串行通信 两种通信方式的特点以及适用场景&#xff1a; 名称特点适用场景并行通信速度快&#xff0c;效率高&#xff0c;成本高适合短距离高速通信&#xff0c;如计算机内部各硬件之…

数据库查询唯一值的两种方式和遍历原理

数据库的遍历 数据库遍历通常是通过执行查询语句来实现的&#xff0c;这些查询语句使用 SELECT 关键字来检索表中的数据。遍历的具体实现取决于查询的条件、排序方式和是否使用了索引等因素。 以下是一个简单的 SQL 查询语句&#xff0c;用于遍历数据库中的数据&#xff1a; …

基于日照时数计算逐日太阳辐射

基于日照时数计算逐日太阳辐射