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所在分区空间不够,自定义安装目录,并在正式运行安装脚本前进行目录指定。

检查Swap空间

执行命令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分区

检查防火墙firewalld的运行状态

执行命令firewall-cmd --state确认firewalld正在运行

[root@iZj6ce5tnbjr6kx5xz180xZ ~]# firewall-cmd --state
running

如果fiewalld没有正常运行,请参考:安装时未开启防火墙服务,导致安装失败

安装步骤

考虑到CN用户的网络质量,强烈建议使用方案一:离线安装。

根据每个服务软硬件和网络环境的不同,安装时间不同。为了防止长时间连接SSH中断,建议通过screen管理Linux终端会话。

方案一:大文件,离线安装(推荐优选)

启动防火墙firewalld

请参考:安装时未开启防火墙服务,导致安装失败

下载并执行安装脚本

访问阿里云盘,下载安装文件,然后以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

方案二:脚本,在线安装(需满足安装环境和配置要求)

更换CentOS YUM安装源镜像(推荐CN用户执行)

推荐Github项目LinuxMirrors -- GNU/Linux 一键更换系统软件源脚本,使用方法:

bash <(curl -sSL https://linuxmirrors.cn/main.sh)
# 配置过程请:不要选择关闭防火墙

安装关键组件

# Root身份执行
yum install yum-utils screen -y

以下所有动作建议在screen窗口操作。

启动防火墙firewalld

确保firewalld运行,再执行一次吧!

# Root身份执行
systemctl start firewalld
systemctl enable firewalld

请参考:安装时未开启防火墙服务,导致安装失败

安装 Docker

有很多操作系统默认安装了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

设置Docker pull镜像源(推荐CN用户执行)

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"
  ]
}

安装 Docker Compose

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中。操作方法:

  1. 增加export PATH=$PATH:/usr/local/bin/etc/profile
  2. 执行命令source /etc/profile

系统不支持yum-config-manager时使用如下脚本

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

首次登录OctoMation

修改默认密码

安装完成后,使用web浏览器访问https://<OCTOMATION_SERVER_IP> 进行登录,登录页面如下所示: image 默认管理员账号密码:admin/octomation 为安全起见,系统会强制要求修改密码,按照提示修改后重新登录即可。

导入许可文件

登录成功后显示如下许可页面 image 点击右上角的导入License,将申请到的产品许可文件导入后,即可开始使用OctoMation。 导入成功后页面将显示各个功能的许可信息: image

激活和导入剧本&应用包

安装部署常见问题

/opt所在分区空间不够,自定义安装目录

如果您的服务器磁盘分区中根分区磁盘空间不是很大,需要将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

返回环境检查

安装时未开启防火墙服务,导致安装失败

如安装时未开启防火墙服务,执行安装脚本将出现如下提示:

image

执行如下命令开启防火墙firewalld后,重新执行安装脚本即可。

firewall-cmd --state
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --state

注意,启动防火墙前,别忘了开放SSH端口,防止自己掉线!系统默认是开放的。

返回环境检查

shakespeare-executor启动较慢,之后显示安装失败错误信息

安装过程中shakespeare-executor服务启动时间较长,如下图所示 image 接着显示安装失败 image 该问题与代码加密服务有关系,请重新执行安装脚本。

Failed to Setup IP tables: Unable to enable SKIP DNAT rule

安装包安装过程中,报错:“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分区

假定,创建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.com Fallback** ⚠️