55

『互联网架构』软件架构-电商系统架构(上)(69)

 5 years ago
source link: https://www.tuicool.com/articles/vEJfiaQ
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

上篇文章,以淘宝举例电商的演变过程,发现从个人网站到java网站,分布式。以应用程序做服务化,数据库采用读写分离分库分表,redis cluster,oss图片处理。

今天说说如何落地。

源码:https://github.com/limingios/netFuture/tree/master/jenkins+nexus+gogs

iiYf2uV.png!web

(一)虚拟机搭建

  • 虚拟机创建

    >通过源码生成4个虚拟机,准备工作。vagrant已经安装了 对应的docker。用docker安装nexus就是为了避免环境变量,用户赋权等复杂的操作。对于vagrant的如何安装不用的系统不一样可以参看

    > mac 安装vgarant :https://idig8.com/2018/07/29/docker-zhongji-07/

    > window安装vgaranthttps://idig8.com/2018/07/29/docker-zhongji-08/

系统类型 IP地址 节点角色 CPU Memory Hostname Centos7 192.168.72.101 SI-gogs 2 3G SI-gogs Centos7 192.168.72.102 SI-jenkins 2 3G SI-jenkins Centos7 192.168.72.103 SI-nexus 2 3G SI-nexus Centos7 192.168.72.104 SI-tomcat 2 2G SI-tomcat

qUBBvmE.png!web

Qje2Ybf.png!web

miyy6fm.png!web

(二)环境搭建

里面涉及到的安装方式很多,能简化的我都用docker来完成的,不能简化的还是中规中矩按照正常的方式起来进行安装。

  • 1.docker安装Gogs(72.101)

    >https://hub.docker.com/r/gogs/gogs

qQj6vyZ.png!web

切换root用户

su -
#密码 vagrant

FbAnuiv.png!web

从镜像库拉取

docker pull gogs/gogs

NN77Br2.png!web

创建相应文件夹

mkdir -p /var/gogs

mmQBNrE.png!web

创建docker容器gogs,关闭防火墙

docker run -t  --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs
# 关闭防火墙
service iptables stop
# 查看是否关闭
firewall-cmd --state

mMzy6jF.png!web

WARNING: IPv4 forwarding is disabled. Networking will not work.

虚拟机端口转发 外部无法访问。

JfaYb2y.png!web

解决方案:启动docker web服务时【虚拟机端口转发 外部无法访问】

vi /etc/sysctl.conf
#添加,按键ESC,wq保存
net.ipv4.ip_forward=1
#重启网络
systemctl restart network
#查看是否修改成功
sysctl net.ipv4.ip_forward

67vIRbm.png!web

biqAZra.png!web

再次访问gogs的配置页面

192.168.72.101

NZrMVnU.png!web

如何配置gogs

FRfy6vU.png!web

IP 不要使用localhost,负责外部无法访问容器了

MbM7ZnQ.png!web

2eeY7vJ.png!web

安装完毕

2q2imif.png!web

创建仓库测试

Vbq63aU.png!web

IVvy6rJ.png!web

nIRnieI.png!web

mUfYNjJ.png!web

Q7reqqj.png!web

修改文件提交测试,发现也是没问题的。看来gogs已经安装完毕了。

r6z6zu7.png!web

UBfyMzF.png!web

用户名:liming

密 码:123456

  • 2.安装Jenkins(72.102)不推荐docker安装

    > 容器中安装jdk,maven,git等,这个需要的挂载比较多,同时dockerfile比较复杂。 按照我的shell一键安装。

    源码:jenkins+nexus+gogs/jenkins.sh

官网:https://jenkins.io/zh

2eMfArf.png!web

切换root用户

su -
#密码 vagrant

3EZnE33.png!web

查看shell脚本

qiIjQzn.png!web

编辑脚本

source /etc/profile
cd /root/
vi jenkins.sh

脚本赋权,运行脚本

#shell脚本里面设置了端口8888,喜好自行修改
chmod 777 jenkins.sh
sh jenkins.sh
````
![](https://upload-images.jianshu.io/upload_images/11223715-19a54a20ab11d303.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


> 安装完成

![](https://upload-images.jianshu.io/upload_images/11223715-fdb723e54dd6bc4b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> 第一次安装查看秘钥
``` bash
cd /root
ls
#末尾可以看到秘钥
cat nobup.out

uyYriuF.png!web

3aamE3i.png!web

网页安装jenkins,秘钥就是上面复制的

EB3iIjj.png!web

iq2yqmN.png!web

选择插件安装

VjyQFrB.png!web

pipline的插件全部安装,如果是docker安装jenkins,插件老安装失败

6zAVrqu.png!web

使用admin登录,密码还是刚才的cat nobup.out的密码

修改密码,密码修改成 123456

YNFveum.png!web

jYZBFzZ.png!web

用户名:admin

密 码:123456

# 如果虚拟机重启的话,需要输入这个命令才可以启动jenkins
cd /root
nohup java -jar jenkins.war --ajp13Port=-1 --httpPort=8888 &
  • 3.docker安装Nexus(72.103)

    > https://hub.docker.com/r/sonatype/nexus3

ieEJnub.png!web

切换root用户

su -
#密码 vagrant

qmIzqa6.png!web

从镜像库拉取

docker pull sonatype/nexus3

eaEfeqA.png!web

创建相应文件夹

mkdir  /var/nexus-data
#权限问题
chown -R 200 /var/nexus-data

eMrYVfA.png!web

创建docker容器nexus,关闭防火墙

docker run -d -p 8081:8081 --name nexus -v /var/nexus-data:/nexus-data sonatype/nexus3
# 关闭防火墙
service iptables stop
# 查看是否关闭
firewall-cmd --state

au63UzJ.png!web

查看状态

docker ps -a

RVFFjuv.png!web

安装完毕

J36VNjZ.png!web

用户名:admin

密 码:admin123

PS:docker的方式安装gogs 和 nexus。jenkins正常的方式安装。下节在104上回顾下tomcat的持续发布管理。

百度未收录

>>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

>>原文链接地址:上一篇:

已是最新文章


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK