OctoMation安装部署手册 - flagify-com/OctoMation GitHub Wiki
别着急,请耐心并仔细地看完文档再动手!
- CPU:4核+
- 指令架构:X86_64
- 内存:8GB+
- 硬盘:200GB+ (默认安装在Linux系统的/opt目录),建议配置足够的空间,方便系统运行后存储数据和日志。
- 操作系统:Redhat/Centos 7.8+/8+(9以下) | OpencloudOS7/8/9(需要1.1.2以上版本使用兼容参数) | Rocky Linux8/9(需要1.1.2以上版本使用兼容参数) | openEuler 22 (需要1.1.2以上版本使用兼容参数)
- Docker版本:不低于20.10.12
- Docker-compose版本:1.29.2(最优)
-
swap
分区空间不少于8GB - 系统防火墙
firewalld
需要处于运行状态 - 系统umask必须为022
如系统未安装Docker或Docker-compose,安装脚本将自动在线安装。
务必使用干净、未安装其他软件的新系统环境安装OctoMation!!!
请勿使用DHCP分配的IP地址,静态IP!静态IP!静态IP!
因安装过程需要从互联网源服务器获取容器镜像等文件,请确保安装的主机能够访问互联网。
💡为保证安装过程顺利,强烈建议CN用户使用国内镜像源(yum、docker等)进行安装。
执行cat /etc/redhat-release
查看操作系统版本,确保7.8以上
cat /etc/redhat-release
# CentOS Linux release 7.9.2009 (Core)
如果命令无效果,请尝试更过CentOS版本查看方法
执行命令df -h
即可查看/
和/opt
的存储空间情况,确保/opt
空间足够!
root@iZj6ce5tnbjr6kx5xz180xZ:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 729M 988K 728M 1% /run
/dev/vda3 197G 2.3G 187G 2% /
tmpfs 3.6G 0 3.6G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda2 197M 6.1M 191M 4% /boot/efi
tmpfs 729M 4.0K 729M 1% /run/user/1000
如果您希望将OctoMation安装到其它分区,请参考:/opt所在分区空间不够,自定义安装目录,并在正式运行安装脚本前进行目录指定。
执行命令free -h
,查看Swap分区,并确保空间至少8GB。
[root@VM-16-7-centos ~]# free -h
total used free shared buff/cache available
Mem: 7.5G 4.9G 156M 2.5M 2.5G 2.4G
Swap: 8.0G 0B 8.0G
如果您的swap空间还没有创建或空间不足,请参考:为云主机创建Swap分区
执行命令firewall-cmd --state
确认firewalld
正在运行
[root@iZj6ce5tnbjr6kx5xz180xZ ~]# firewall-cmd --state
running
如果fiewalld没有正常运行,请参考:安装时未开启防火墙服务,导致安装失败。
考虑到CN用户的网络质量,强烈建议使用方案一:离线安装。
根据每个服务软硬件和网络环境的不同,安装时间不同。为了防止长时间连接SSH中断,建议通过screen
管理Linux终端会话。
请参考:安装时未开启防火墙服务,导致安装失败。
访问阿里云盘,下载安装文件,然后以root
身份执行离线安装脚本octomation_community_docker_install_offline_<version>.sh
。
https://www.alipan.com/s/KKMixNpGQpU 提取码: 1n6k
# 以root身份执行离线安装脚本
chmod +x octomation_community_docker_install_offline_<VERSION>.sh
./octomation_community_docker_install_offline_<VERSION>.sh
推荐Github项目LinuxMirrors -- GNU/Linux 一键更换系统软件源脚本,使用方法:
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
# 配置过程请:不要选择关闭防火墙
# Root身份执行
yum install yum-utils screen -y
以下所有动作建议在screen窗口操作。
确保firewalld运行,再执行一次吧!
# Root身份执行
systemctl start firewalld
systemctl enable firewalld
请参考:安装时未开启防火墙服务,导致安装失败。
有很多操作系统默认安装了podman,安装前需要先卸载
yum -y erase podman buildah
Root身份执行:
### Docker使用阿里云镜像加速(可选)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
docker -v
# Docker version 24.0.6, build ed223bc
# 启动docker服务,并设置docker服务开机自启。
systemctl start docker
systemctl enable docker
Root身份修改或创建docker配置文件/etc/docker/daemon.json
,增加国内镜像源:
{
"registry-mirrors": [
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://dockerproxy.com",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com"
]
}
Root身份执行:
# 原始安装
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose && \
docker-compose -v
如果出现:bash: docker-compose: command not found
,请将/usr/local/bin
加入到环境变量PATH中。操作方法:
- 增加
export PATH=$PATH:/usr/local/bin
到/etc/profile
- 执行命令
source /etc/profile
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i s/\$releasever/8/g /etc/yum.repos.d/docker-ce.repo
wget https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/container-selinux-2.124.0-1.gitf958d0c.module_el8.3.0+569+1bada2e4.noarch.rpm
rpm -ivh container-selinux-2.124.0-1.gitf958d0c.module_el8.3.0+569+1bada2e4.noarch.rpm
dnf install docker-ce docker-ce-cli -y
systemctl start docker
systemctl enable docker
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose && docker-compose -v
下载OctoMation安装文件octomation_community_docker_install_.sh到目标服务器,以root
身份执行安装
(在安装脚本后加上-h可以手动选择更多安装参数
):
# ghproxy.com网络加速版(推荐CN用户使用)
curl -o octomation_install.sh https://ghproxy.com/https://raw.githubusercontent.com/flagify-com/OctoMation/main/octomation_community_docker_install_1.1.3.sh && \
chmod +x octomation_install.sh && \
./octomation_install.sh
# # 默认安装(GitHub原始地址)
curl -o octomation_install.sh https://raw.githubusercontent.com/flagify-com/OctoMation/main/octomation_community_docker_install_1.1.3.sh && \
chmod +x octomation_install.sh && \
./octomation_install.sh
耐心等待,直到您看到OctoMation安装成功!中间如果因为其他问题出错,可以重新运行安装脚本。
OctoMation安装成功完成!
访问https://x.x.x.x 可登录管理界面
在线帮助文档:
https://github.com/flagify-com/OctoMation/wiki
安装完成后,使用web浏览器访问https://<OCTOMATION_SERVER_IP> 进行登录,登录页面如下所示:
默认管理员账号密码:admin/octomation
为安全起见,系统会强制要求修改密码,按照提示修改后重新登录即可。
登录成功后显示如下许可页面 点击右上角的导入License,将申请到的产品许可文件导入后,即可开始使用OctoMation。 导入成功后页面将显示各个功能的许可信息:
如果您的服务器磁盘分区中根分区磁盘空间不是很大,需要将octomation安装在其他磁盘空间更大的分区(默认安装在/opt目录),比如/home/octomation
目录,那需要设置一下docker服务的数据存储路径。
执行ls /etc/systemd/system/docker.service
或者ls /usr/lib/systemd/system/docker.service
判断docker服务路径是否存在,如果存在则执行对应的脚本:
mkdir -p /home/octomation/docker_data
sed -i -e '\@ExecStart=@s@$@ --data-root='/home/octomation/docker_data'@g' /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker
或者
mkdir -p /home/octomation/docker_data
sed -i -e '\@ExecStart=@s@$@ --data-root='/home/octomation/docker_data'@g' /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker
或者 修改docker的daemon.json
增加data-root的配置
vi /etc/docker/daemon.json
{
"storage-driver": "overlay2",
"data-root": "/home/octomation/docker_data",
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 65536,
"Soft": 65536
}
}
}
修改完成后,通过docker info
查看data root是否修改完成,然后执行:
systemctl daemon-reload
systemctl restart docker
执行安装脚本时可加-i参数指定其他安装目录如:/home/octomation
。
mkdir /home/octomation
octomation_community_docker_install_<version>.sh -i /home/octomation
返回环境检查。
如安装时未开启防火墙服务,执行安装脚本将出现如下提示:
执行如下命令开启防火墙firewalld
后,重新执行安装脚本即可。
firewall-cmd --state
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --state
注意,启动防火墙前,别忘了开放SSH端口,防止自己掉线!系统默认是开放的。
返回环境检查。
安装过程中shakespeare-executor服务启动时间较长,如下图所示 接着显示安装失败 该问题与代码加密服务有关系,请重新执行安装脚本。
安装包安装过程中,报错:“Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: ”,原因是某些特殊情况下,docker服务启动时定义的自定义链DOCKER被清除了。
Note: check firewalld for docker
✔ firewalld started
Note: !!!!!防火墙已启动,后续不允许停止,否则可能导致docker服务异常!!!!
Note: docker version: 24.0.6
➜ check if docker started
✔ docker started already
➜ check honeyGuide docker network
➜ create HoneyGuide docker network
Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-ce0256958c7e -j RETURN: iptables: No chain/target/match by that name.
(exit status 1))
shakespeare install error,exit
OcoMation 安装失败
解决方案是:重启docker服务后重新执行安装脚本,重启docker的命令:systemctl restart docker
。
开始安装时,在备份操作后无明确的错误信息直接显示Octomation安装失败,可能是由于profile中有错误导致source时异常
解决方案:
echo -e "
source /etc/profile
echo $?
set -e
source /etc/profile
echo $?" > test.sh
bash test.sh
看上述结果是否返回0,如果为0则profile有错,需要检查source的具体错误修复后安装。
假定,创建Swap分区空间为8GB,操作如下:
sudo dd if=/dev/zero of=/swapfile count=8192 bs=1MiB
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h
swapon --show
修改或者添加vm.swappiness = 1
到 /etc/sysctl.conf
vm.swappiness = 1
修改完成后,执行命令sysctl -p
查看结果。
返回环境检查
持续更新请参考:OctoMation环境跟踪记录。经过人肉测试,以下环境安装部署OctoMation正常,供参考:
平台 | 操作系统 | CPU | 内存 | 磁盘 | Docker | Docker Compose | 其它 |
---|---|---|---|---|---|---|---|
华为云 | CentOS 8.5.2111 | 2C | 8GB | 80GB | 24.0.6 | 1.29.2 | / |
阿里云 | CentOS 7.8.2003 | 2C | 8GB | 80GB | 24.0.6 | 1.29.2 | / |
腾讯云 | CentOS 7.9.2009 | 2C | 8GB | 80GB | 24.0.6 | 1.29.2 | / |
以上环境仅仅是为了验证OctoMation可以安装部署,实际在使用过程中务必提高资源配额以满足生产使用需求
- 鸣谢GitHub Proxy代理加速:GitHub 文件 , Releases , archive , gist , raw.githubusercontent.com 文件代理加速下载服务.
- 鸣谢阿里巴巴开源镜像站
- 阿里云CentOS 7.8、腾讯云CentOS 7.9已经充分验证