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-runner10.接取 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.gz2. 安装 nginx并配置
yum install -y nginx配置 nginx 实现前端静态文件访问,并代理后端接口。
# nginx配置文件 vim /etc/nginx/nginx.confnginx 示例配置:
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进行功能测试
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)