10分钟抱走虚拟机,java、docker、nginx、mysql、redis、jenkins、node

10分钟安装好虚拟机,java、docker、nginx、mysql、redis、jenkins、node

虚拟机推荐使用vangrant (傻瓜式安装)
下载地址:
1、先下载VirtualBOX
下载地址:https://www.virtualbox.org/wiki/Downloads
后安装vagrant
2、下载地址: https://www.vagrantup.com/

对虚拟机进行相关配置

1、创建一个文件夹,进行cmd (在哪个文件夹执行,那就默认安装到哪里)
输入vagrant init centos/7,即可初始化一个centos7系统。(注意这个命令在哪个目录下执行的,他的Vagrantfile就生成在哪里)
2、修改配置文件
需要cmd看ipconfig 以太网适配器 VirtualBox Host-Only Networkz这个地址,因此192.168.33.10也可能
修改刚才1创建的文件夹下的Vagrantfile文件(用记事本打开)
config.vm.network “private_network”,ip:“192.168.56.10”

3、vagrant up 命令是安装并启动虚拟机,
如果是第一次,它会下载对应的虚拟机镜像文件,下载完成了之后就会自动启动虚拟机,
以后再执行这个命令就是直接启动已经安装的虚拟机了。
4、预案
(出现报错,都是网络不好,重新下载即可)
vagrant reload 改完重启启动虚拟机环境。

使用Xshell连接虚拟机(所有初始账号:vagrant,密码:vagrant)

首先使用密钥连接,账号是vagrant,密钥路径: X:\vagrant\centos.vagrant\machines\default\virtualbox

如何通过其他工具链接ssh

vi /etc/ssh/sshd_config

修改 PasswordAuthentication yes

systemctl restart sshd.service 或 service sshd restart

连接192.168.56.10:22端口成功,用户名root,密码vagrant

也可以通过vagrant ssh-config查看ip和端口,此时是127.0.0.1:2222

虚拟机安装让必要软件

# 备份原yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 使用新yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 生成缓存
yum makecache 

虚拟机安装docker

# https://docs.docker.com/engine/install/centos/


#卸载系统之前的docker 
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
                  
                  
sudo yum install -y yum-utils

# 配置镜像
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
sudo yum install docker-ce docker-ce-cli containerd.io

sudo systemctl start docker
# 设置开机自启动
sudo systemctl enable docker

docker -v
sudo docker images

# 配置镜像加速
https://cr.console.aliyun.com/cn-qingdao/instances/mirrors

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://lrhf8l1s.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装mysql

sudo docker pull mysql:5.7

# --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

修改MySQL配置

进入目录: vi /mydata/mysql/conf/my.conf 

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

# 退出保存 重启
docker restart mysql
# 每次开机都启动
docker update mysql --restart=always

安装Redis

# 在虚拟机中新建文件夹、文件
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
# 下载镜像
docker pull redis
# 启动并挂载
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

保存 重启
docker restart redis

设置redis容器在docker启动的时候启动
docker update redis --restart=always

安装Nginx

docker pull nginx:1.10
# 随便启动一个nginx实例,只是为了复制出配置,放到docker里作为镜像的统一配置
docker run -p 80:80 --name nginx -d nginx:1.10

cd /mydata/nginx
docker container cp nginx:/etc/nginx .
然后在外部 /mydata/nginx/nginx 有了一堆文件
mv /mydata/nginx/nginx /mydata/nginx/conf
# 停掉nginx
docker stop nginx
docker rm nginx

# 创建新的nginx
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

# 注意一下这个路径映射到了/usr/share/nginx/html,我们在nginx配置文件中是写/usr/share/nginx/html,不是写/mydata/nginx/html

docker update nginx --restart=always

# 测试Nginx是否成功
cd /mydata/nginx/html/
vim index.html
随便写写
测试 http://192.168.56.10:80 

更多软件看着里

https://blog.csdn.net/qq_17369545/article/details/120339934

前提安装Java环境(已有可跳过)

jenkins是运行在java环境中的,所以要先安装java,配置java环境变量后才能使用。
方式一:(不推荐)
1、安装java
yum install -y java-1.8.0-openjdk.x86_64
2、 用文本编辑器打开/etc/profile
vi /etc/profile

然后在 profile文件末尾加入:
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 
粘贴到profile末尾之后,按ESC键,然后:wq退出。
 
3、使配置文件生效
source /etc/profile

方式二:下载安装包(推荐)
【公众号:石榴煎酒,回复Java即可拿到win和linux的安装包】
1、用文本编辑器打开/etc/profile
vi /etc/profile
2、然后在 profile文件末尾加入:
#安装目录
export   JAVA_HOME=/usr/java/jdk1.8.0_231
#下面都一样啦
export   CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export  PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export   JRE_HOME=$JAVA_HOME/jre

3、使配置文件生效
source /etc/profile

安装jenkins(通过yum安装jenkins。方便管理,随启随停。)

服务器安装jenkins
1、先将Jenkins存储库添加到yum repos。
下载不安全的https 域名下的内容时会提示
sudo yum install -y ca-certificates
获取jenkins源文件
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
导入jenkins公钥
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
安装jenkins
yum install jenkins

目录说明

/usr/lib/jenkins/ #jenkins安装目录,WAR包会放在这里。
/etc/sysconfig/jenkins #jenkins配置文件
/var/lib/jenkins/ #默认的JENKINS_HOME。 
/var/log/jenkins/jenkins.log #日志文件

启动jenkins

systemctl start jenkins 

安装git

创建第一个管理用户:
创建一个项目
然后安装git和node

安装git:
yum install git
 
安装node:
wget https://npm.taobao.org/mirrors/node/v10.15.0/node-v10.15.0-linux-x64.tar.xz
解压:
xz -d node-v10.15.0-linux-x64.tar.xz
tar -xvf node-v10.15.0-linux-x64.tar
 
全局使用:
ln -s /root/node-v10.15.0-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v10.15.0-linux-x64/bin/npm /usr/local/bin/npm

如果不生效可选择第二种方法安装node 

选用了epel的方法来进行安装node。方法入下
sudo yum install epel-release
sudo yum install nodejs
node --version
好了,安装成功了。

然后就是npm。
 sudo yum install npm --enablerepo=epel

再然后express
    sudo npm install -g express

    这还不行,还需要
    sudo npm install -g express-generator

哈哈,好啦,成功了。更换镜像源
npm config set registry=http://registry.npm.taobao.org
jenkins部署前端到nginx
输入shell命令: 配置-->构建 (选择执行shell命令)

cd blog-view
npm install
rm -rf ./dist/*
npm run build
rm -rf /mydata/nginx/html/*
cp -rf ./dist/* /mydata/nginx/html
chown -R jenkins:jenkins /mydata/nginx/html

jenkins打包发布springboot项目,安装maven

安装maven插件 
Maven Integration/Maven Integration plugin

服务器安装maven
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -xzvf apache-maven-3.5.4-bin.tar.gz -C /usr/local

cd /usr/local/
mv  apache-maven-3.5.4 maven

vi /etc/profile
export MAVEN_HOME=/usr/local/maven
export PATH=${MAVEN_HOME}/bin:${PATH}

source /etc/profile 

Jenkins 通过shell脚本调用 mvn 命令的时候,是从/usr/bin 文件夹中找命令的
sudo ln -s /usr/local/maven/mvn /usr/bin/mvn
sudo ln -s /usr/local/maven/mvn /usr/local/bin/mvn

设置本地仓库
mkdir /opt/repo 创建本地仓库目录
本地仓库地址改为:
/opt/repo
chmod 777 /opt/repo

jenkins主页面->Manage Jenkins->Configure System->Global Properties(全局属性) 中,
将Environment variables(环境变量)复选框选中, 填入以下内容:

name: M2_HOME value:/usr/local/maven
name: PATH+EXTRA value: $M2_HOME/bin

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kwe8aG4B-1657551952316)(C:\Users\ThinkPad\AppData\Roaming\Typora\typora-user-images\image-20220710132231435.png)]

start.sh

#!/bin/bash
set -e #任何命令出错就退出
set -o pipefail
 
APP_DIR=
PROJECT_NAME=项目名字
nohup java  -jar ${PROJECT_NAME}.jar > ${PROJECT_NAME}.log &
start_ok=false
if [[ $? = 0 ]];then
        sleep 3
        tail -n 10 ${PROJECT_NAME}.log
        sleep 5
        tail -n 50 ${PROJECT_NAME}.log
fi
aaa=`grep "Started" ${PROJECT_NAME}.log  | awk '{print $1}'`
if [[ -n "${aaa}" ]];then
    echo "app started ok"
    exit 0
else
    echo "app started error"
    exit 1

stop.sh

#!/bin/bash
 
PROJECT_NAME=项目名
ps aux | grep ${PROJECT_NAME} | grep -v "grep" | awk '{print "kill -9 "$2}' | sh

我的简单粗暴配置

start.sh 文件内容(会有问题,jenkins会kill子进程)
nohup java -jar vueblog-0.0.1-SNAPSHOT.jar &

stop.sh 文件内容
ps aux | grep vueblog-0.0.1-SNAPSHOT.ja | grep -v "grep" | awk '{print "kill -9 "$2}' | sh

rm.sh 文件内容
rm -rf nohup.out

jenkins配置,构建后操作为执行xshell指令

cd vueblog
mvn clean package
cp -rf ./target/*.jar /usr/local/cili_blog
sh stop.sh
sh rm.sh
sh start.sh

不管用那就使用绝对路径
sh /usr/local/cili_blog/start.sh

jenkins执行sh会kill子进程,解决方案

官网解释:
https://wiki.jenkins.io/display/JENKINS/ProcessTreeKiller

方案一:start.sh内容
# 在执行的脚本前边加入:不要杀死我 ~
export BUILD_ID=dontKillMe
# 要执行的脚本命令
nohup java -jar veryGoodItem.jar > logTest.log 2>&1 &

方案二 start.sh内容
# 临时改变BUILD_ID值,使得Jenkins不会找到并结束掉run.sh启动的后台进程
OLD_BUILD_ID=$BUILD_ID
echo $OLD_BUILD_ID
BUILD_ID=dontKillMe
# 要执行的脚本命令
nohup java -jar veryGoodItem.jar > logTest.log 2>&1 &

# 改回原来的BUILD_ID值
BUILD_ID=$OLD_BUILD_ID
echo $BUILD_ID


点击构建,大功告成!

详细构建过程参考【jenkins构建前后端分离应用】

你可能感兴趣的:(java开发所需工具,java,docker,nginx)