基于linux手动部署CloudIac

基于linux手动部署CloudIac,第1张

基于linux手动部署CloudIac 手动部署 CloudIac 环境依赖

1. *** 作系统:Linux x86_64 架构
  这里我们采用CentOS 7.9环境进行部署
2.中间件:MySQL 5.7、Consul

参考文档:cloudiac部署
源码地址:cloudiac

后端部署

1.创建目录,并且将cloudiac源码下载到本地并解压

mkdir -p /usr/yunji/cloudiac
cd /usr/yunji
wget -c https://ghproxy.com/idcos/CloudIaC/archive/refs/tags/v0.6.0.tar.gz

将源码下载之后,我们进行解压

tar -zxvf v0.6.0.tar.gz

解压之后,我们得到了CloudIac-0.6.0源码文件,进入文件目录,读取README文档

cloudiac源码是基于go语言进行编写,因此编译需要依赖go语言环境 指定go1.16以上版本

2.安装go语言环境
我们到go的官网下载对应版本的压缩包:官网地址

复制链接地址,命令行执行下载到本地

wget -c https://golang.google.cn/dl/go1.16.9.linux-amd64.tar.gz

执行tar解压到/usr/loacl目录下(官方推荐),得到go文件夹等

tar -C /usr/local/ -zxvf go1.16.9.linux-amd64.tar.gz

添加/usr/loacl/go/bin目录到PATH变量中。添加到/etc/profile 或$HOME/.profile都可以

vim /etc/profile
# 在最后一行添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
# 保存退出后source一下
source /etc/profile
#执行 go version检验环境是否安装成功
go version

3.配置编译需要的依赖
根据官方README文档,需要下载swaggo API
为了提高下载速度,我们可以设置代理

go env -w GOPROXY="https://goproxy.io,direct"

接下来依次执行下载swag依赖以go mod依赖

go get -x github.com/swaggo/swag/cmd/swag 
go mod download -x

下载时间较久,耐性等待即可
在执行完第一个文件之后,会在/root下创建一个go目录,里面有两个子文件夹,一个是下载的依赖,一个是swag的可执行文件

将bin中的swag可执行文件移动到我们之前配置好环境变量的/usr/local/go/bin目录下

mv swag /usr/local/go/bin
#查看swag是否配置好
swag --version
#安装git
yum install git

这样我们需要的依赖就全部配置完成了,下一步就开始编译源码了
4.编译源码
我们进入源码所在的文件夹下,进行源码编译

make build

等待编译完成,我们将编译好的可执行文件及其他所需配置文件移动到/usr/yunji/cloudiac下

目前只支持部署到: /usr/yunji/cloudiac 目录

所需文件分别在CloudIaC-0.6.0的build、script、configs、assets下,将文件拷贝到 /usr/yunji/cloudiac下

5.安装并启动 Docker

使用官方安装脚本自动安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内一键安装的命令

curl -sSL https://get.daocloud.io/docker | sh

安装成功后初始化并且启动docker

systemctl enable docker
systemctl start docker
#检查docker启动状态
service docker status

6.安装并启动 Mysql

yum install -y https://repo.mysql.com/mysql57-community-release-el7.rpm
yum install -y mysql-server

systemctl enable mysqld
systemctl start mysqld

安装完成后直接使用 mysql -uroot -p即可连接到数据库

由于初始化创建数据库密码自动创建,可以在日志中查看初始化登陆密码
grep "password" /var/log/mysqld.log

进入数据库后,创建一个iac数据库供cloudiac使用

# 连接到 mysql 执行以下命令创建 db,默认配置的 db 名称为 iac
create database iac charset utf8mb4;

7.安装并启动 Consul

yum install -y yum-utils
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install consul

## 修改 consul 配置
cat >> /etc/consul.d/consul.hcl < 

以上配置仅用于单机测试时使用,完整的 consul 集群部署请参考官方文档: consul集群部署

8.编辑配置文件
在/usr/yunji/cloudiac下,改正几个配置文件的名字

mv config-portal.yml.sample config-portal.yml
mv config-runner.yml.sample config-runner.yml
mv dotenv.sample .env
mv demo-conf.yml.sample demo-conf.yml

编辑 .env 文件,主要修改如下内容:

# 管理员账号密码,只在初始化启动时进行读取-自行设置
[email protected]

## 管理员密码要求长度大于 8 且需要包含字母、数字、特殊字符-自行设置
IAC_ADMIN_PASSWORD=yunjikeji123_

# 加密密钥配置-自行设置
SECRET_KEY=yunjikeji

## JWT 密钥,未配置时默认使用 SECRET_KEY
JWT_SECRET_KEY=

# mysql 配置
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
#对应之前创建的数据库,我们这里叫iac
MYSQL_DATAbase=iac
#数据库用户名
MYSQL_USER=root
#数据库密码
MYSQL_PASSWORD=123456

# IaC 对外提供服务地址(服务器公网ip)
PORTAL_ADDRESS=47.97.26.141

# consul 配置(注意需要配置为宿主机的内网 ip)
CONSUL_ADDRESS=172.22.148.7:8500

# portal 服务注册信息配置
#这里填写自己服务器主私网ip
SERVICE_IP=172.22.148.7 
SERVICE_ID=IaC-Portal-01
SERVICE_TAGS=iac-portal;portal-01

保存退出,cloudiac主要信息就已经配置完成了
9.安装 IaC 服务并启动

cp iac-portal.service ct-runner.service /etc/systemd/system/
systemctl enable iac-portal ct-runner

## 启动服务
systemctl start iac-portal ct-runner

## 确定服务状态
systemctl status -l iac-portal ct-runner

10.接取 ct-worker 镜像
ct-worker 是执行部署任务的容器镜像,需要 pull 到本地:

docker pull cloudiac/ct-worker

该 *** 作可以后台进行,保证在执行环境部署前镜像 pull 到本地即可。

前端部署

由于前端源码编译完成之后缺少文件,这里我们就直接使用官方部署包
1.创建指定目录,下载前端部署包并解压

VERSION=v0.6.0
mkdir -p /usr/yunji/cloudiac-web 
cd /usr/yunji/cloudiac-web 
curl -sL https://github.com/idcos/cloudiac-web/releases/download/${VERSION}/cloudiac-web_${VERSION}.tar.gz -o cloudiac-web_${VERSION}.tar.gz 
tar -xf cloudiac-web_v0.6.0.tar.gz

由于防火墙原因,我们在github上拉取文件时速度较慢,可以在github前加ghproxy.com代理加快下载速度。例如上面的命令可以写成:
curl -sL https://ghproxy.com/github.com/idcos/cloudiac-web/releases/download/${VERSION}/cloudiac-web_${VERSION}.tar.gz -o cloudiac-web_${VERSION}.tar.gz

2. 安装 nginx并配置

yum install -y nginx

配置 nginx 实现前端静态文件访问,并代理后端接口。

# nginx配置文件
vim /etc/nginx/nginx.conf

nginx 示例配置:

server {
  listen 80;
  server_name _ default;

  location / {
    try_files $uri $uri/ /index.html /index.htm =404;
    # 这里为前端部署包解压后的文件夹
    root /usr/yunji/cloudiac-web;
    index  index.html index.htm;
  }

  location = /login {
    rewrite ^/login /login.html last;
  }

  location /api/v1/ {
    proxy_buffering off;
    proxy_cache off;

    proxy_read_timeout 1800;
    # iac-portal为服务器主私网ip
    proxy_pass http://iac-portal:9030;
  }

  location /repos/ {
   # iac-portal为服务器主私网ip
    proxy_pass http://iac-portal:9030;
  }
}

3.重启nginx,完成前端部署

systemctl nginx restart

至此,cloudiac基于源码部署完成,
访问公网ip进行功能测试

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4664627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存