当前位置: 首页 > news >正文

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

测试

直接访问代理服务器即可

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

相关文章:

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

准备环境 准备两台纯净的服务器进行&#xff0c;在实验之前我们关闭防火墙和selinux systemctl stop firewalld #关闭防火墙 setenforce 0 #临时关闭selinux hosts解析(两台服务器都要去做) [rootansible-server ~]# vim /etc/hosts 10.31.162.24 ansible-ser…...

算法导论复习——CHP22 分支限界法

LIFO和FIFO分枝-限界法 采用宽度优先策略&#xff0c;在生成当前E-结点全部儿子之后再生成其它活结点的儿子&#xff0c;且用限界函数帮助避免生成不包含答案结点子树的状态空间的检索方法。两种基本设计策略&#xff1a; FIFO检索&#xff1a;活结点表采用队列&#x…...

鸿蒙系列--装饰器

一、基础UI组件结构 每个UI组件需要定义为Component struct对象&#xff0c;其内部必须包含一个且只能包含一个build(){}函数&#xff0c;用于绘制UI&#xff1b;struct之内、build()函数之外的地方用于存放数据。 二、基本UI装饰器 Entry 装饰struct&#xff0c;页面的入口…...

FairGuard游戏加固产品常见问题解答

针对日常对接中&#xff0c;各位用户对FairGuard游戏加固方案在安全性、稳定性、易用性、接入流程等方面的关注&#xff0c;我们梳理了相关问题与解答&#xff0c;希望可以让您对产品有一个初步的认知与认可。 Q1:FairGuard游戏加固产品都有哪些功能? A&#xff1a;FairGuar…...

Redis(二)数据类型

文章目录 官网备注十大数据类型StringListHashSetZSetBitmapHyperLogLog&#xff1a;GEOStreamBitfield 官网 英文&#xff1a;https://redis.io/commands/ 中文&#xff1a;http://www.redis.cn/commands.html 备注 命令不区分大小写&#xff0c;key区分大小写帮助命令help…...

2023年广东省网络安全B模块(笔记详解)

模块B 网络安全事件响应、数字取证调查和应用安全 一、项目和任务描述: 假定你是某网络安全技术支持团队成员,某企业的服务器系统被黑客攻击,你的团队前来帮助企业进行调查并追踪本次网络攻击的源头,分析黑客的攻击方式,发现系统漏洞,提交网络安全事件响应报告,修复系统…...

每日力扣算法题(简单篇)

543.二叉树的直径 原题&#xff1a; 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 解题思路&#xff1a; …...

Flume基础知识(三):Flume 实战监控端口数据官方案例

1. 监控端口数据官方案例 1&#xff09;案例需求&#xff1a; 使用 Flume 监听一个端口&#xff0c;收集该端口数据&#xff0c;并打印到控制台。 2&#xff09;需求分析&#xff1a; 3&#xff09;实现步骤&#xff1a; &#xff08;1&#xff09;安装 netcat 工具 sudo yum …...

通过IP地址如何进行网络安全防护

IP地址在网络安全防护中起着至关重要的作用&#xff0c;可以用于监控、过滤和控制网络流量&#xff0c;识别潜在威胁并加强网络安全。以下是通过IP地址进行网络安全防护的一些建议&#xff1a; 1. 建立IP地址白名单和黑名单&#xff1a; 白名单&#xff1a;确保只有授权的IP地…...

Vue.js 中使用 Watch 选项实现动态问题判断与展示答案

组件结构 以下是组件的基本结构&#xff1a; <template><div><!-- 输入框&#xff0c;用于输入问题 --><p>提出一个是/否问题&#xff1a;<input v-model"question" :disabled"loading" /></p><!-- 显示答案 --&…...

python笔记-自用

2024/1/3# python用号实现字符串的拼接&#xff0c;非字符串不能拼接 from pymysql import Connection# 连接mysql数据库salary 100 name "wang"ans "%s" % salary name print(ans)x 1 y 2 sum "%s %s" % (x, y) print(sum)# %s字符串占…...

安克创新与火山引擎数智平台开展合作:数据分析降门槛 数据协同破边界

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 近日&#xff0c;消费电子品牌安克创新与火山引擎数智平台&#xff08;VeDI&#xff09;达成合作&#xff0c;双方将聚焦安克创新大数据平台的海量数据分析场景&…...

LDD学习笔记 -- Linux内核模块

LDD学习笔记 -- 内核模块 简介LKM类型Static Linux Kernel ModuleDynamic Linux Kernel ModuleLKM编写语法 syntax详细描述内核头文件用户空间头文件Module Initialization FunctionModule Cleanup FunctionKeyword & Tag宏 __init __exitLKM入口注册Module Metadate&#…...

springboot整合springbatch批处理

springboot整合springbatch实现批处理 简介项目搭建步骤 简介 项目搭建 参考博客【场景实战】Spring Boot Spring Batch 实现批处理任务&#xff0c;保姆级教程 步骤 1.建表 建表sql CREATE TABLE student (id int NOT NULL AUTO_INCREMENT,name varchar(100) NOT NULL C…...

答案解析——C语言—第2次作业:转义字符

本次作业的链接如下&#xff1a;C语言—第2次作业&#xff1a;转义字符 1.下面哪个不是C语言内置的数据类型&#xff1a; C char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数 …...

HTML5-新增表单input属性

新增表单属性 form控件主要新增的属性: autocomplete 是否启用表单的自动完成功能&#xff0c;取值&#xff1a;on&#xff08;默认&#xff09;、off novalidate 提交表单时不进行校验&#xff0c;默认会进行表单校验 autocomplete属性 概念&#xff1a;autocomplete属性…...

css-、串联选择器和后代选择器的用法

& &表示嵌套的上一级&#xff0c;这是sass的语法&#xff0c;代表上一级选择器 .btn {&.primary {background-color: #007bff;color: #fff;} } 编译出来的结果是同一个元素&#xff0c;有两个类名&#xff0c;两个类名之间没有空格&#xff1a; .btn.primary {…...

nifi详细介绍--一款开箱即用、功能强大可靠,可用于处理和分发数据的大数据组件

目录 目录 一、引言 二、NiFi 的历史背景介绍 三、NiFi 是什么&#xff1f; 核心特性 应用领域 四、NIFI 入门 五 、NiFi 工作流程 六、实际应用场景 七、优势总结 一、引言 NiFi&#xff08;Apache NiFi&#xff09;&#xff0c;全名为“Niagara Files”&#xff0…...

K8S Dashboard登录Token过期问题处理

整体思路 用户访问一个页面&#xff0c;在该页面中设置一个超链接&#xff0c;点击跳转至K8S Dashboard&#xff1b;跳转后&#xff0c;使用剪贴板上已复制的Token粘贴到Dashboard页面中的输入框登录即可。 写个定时任务将Token复制到页面上&#xff0c;过期了重新再登…...

x-cmd pkg | trafilatura - 网络爬虫和搜索引擎优化工具

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 trafilatura 是一个用于从网页上提取文本的命令行工具和 python 包: 提供网络爬虫、下载、抓取以及提取主要文本、元数据和评论等功能可帮助网站导航和从站点地图和提要中提取链接无需数据库&#xff0c;输出即可转换…...

终极指南:如何用ChatLaw构建你的免费中文法律AI助手

终极指南&#xff1a;如何用ChatLaw构建你的免费中文法律AI助手 【免费下载链接】ChatLaw ChatLaw&#xff1a;A Powerful LLM Tailored for Chinese Legal. 中文法律大模型 项目地址: https://gitcode.com/gh_mirrors/ch/ChatLaw 面对复杂的法律问题&#xff0c;你是否…...

谷歌seo如何发布外链? 新站首月发布的频率与节奏

域名注册后的前30天&#xff0c;谷歌爬虫会对新站点进行密集的抓取与记录。这个阶段的站点就像一张白纸&#xff0c;每一个外源信号都会被放大记录。很多站长习惯在上线首周就去购买几百条低质链接&#xff0c;试图拉高权重&#xff0c;但这往往会导致站点在沙盒期停留更久。根…...

金融机器学习实战:MlFinLab工具包核心模块解析与应用指南

1. 从零到一&#xff1a;为什么我们需要一个金融机器学习的“瑞士军刀”&#xff1f;如果你和我一样&#xff0c;在量化金融和算法交易这条路上摸爬滚打了好几年&#xff0c;那你一定经历过这样的场景&#xff1a;为了复现一篇顶级期刊论文里的某个特征工程方法&#xff0c;你需…...

AI时代算力、模型与安全的三角博弈:从Nvidia生态到工程实践

1. 项目概述&#xff1a;当算力、智能与安全交织的时代最近和几个在芯片设计、大模型应用以及安全服务公司工作的朋友聊天&#xff0c;大家不约而同地都聊到了一个话题&#xff1a;我们正处在一个由Nvidia芯片驱动的AI浪潮之巅&#xff0c;但这场盛宴似乎并非没有天花板。一方面…...

Mega:基于上下文工程的Brainbase平台AI开发效率革命

1. 项目概述&#xff1a;Mega&#xff0c;你的Brainbase平台AI工程专家如果你正在使用Claude Code、Cursor或者任何能读取文件的AI编程工具来构建基于Brainbase平台的对话式AI应用&#xff0c;那么你很可能遇到过这样的困境&#xff1a;你需要花费大量时间向AI解释Brainbase的架…...

Cursor Pro激活器:终极解决方案告别API限制,实现无限免费使用

Cursor Pro激活器&#xff1a;终极解决方案告别API限制&#xff0c;实现无限免费使用 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youv…...

知识竞赛软件高可用架构解析:主备切换与故障自愈如何保障业务连续

&#x1f3d7;️ 知识竞赛软件的高可用架构主备切换与故障自愈之道&#x1f4cc; 引言在数字化竞赛时代&#xff0c;一场线上知识竞赛的参与者可能遍布全国&#xff0c;任何系统中断都可能导致活动失败、体验受损。因此&#xff0c;构建一个具备高可用性的知识竞赛平台&#xf…...

告别环境报错!保姆级教程:从JRE到STM32CubeMX 6.10.0的完整安装与配置

从零搭建STM32开发环境&#xff1a;CubeMX 6.10.0避坑全指南 刚拿到STM32开发板时的兴奋&#xff0c;往往在环境配置阶段就被各种报错消磨殆尽。作为过来人&#xff0c;我深刻理解那种看着红色错误提示却无从下手的挫败感。本文将带你用最稳妥的方式完成从Java环境到CubeMX的全…...

哔哩下载姬完全指南:三步掌握B站视频批量下载技巧

哔哩下载姬完全指南&#xff1a;三步掌握B站视频批量下载技巧 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff0…...

5分钟掌握FanControl:Windows风扇控制的终极免费解决方案

5分钟掌握FanControl&#xff1a;Windows风扇控制的终极免费解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending…...