跳转至
首页 解决方案 下载 文档
演示环境

OpsAny社区版部署


OpsAny默认使用Docker进行容器化单机部署,主要分为几大步骤:安装依赖软件包、部署PaaS服务、部署SaaS服务。推荐工程师可以通过阅读安装脚本,了解安装的所有细节,探索OpsAny的奥秘。

部署主机配置

OpsAny社区版部署,使用一台虚拟机即可完成部署,推荐使用8CPU和16G内存的主机,数据盘可根据纳管的服务器数量综合考虑,例如100台主机,一年可能需要500G左右的存储空间存放监控数据。

配置推荐 操作系统 主机配置 备注
最低体验配置 Ubuntu 22.04 4C、8G、20G数据盘 仅部署运维平台,可以纳管50台以内,干净主机。
生产建议配置 Ubuntu 22.04 8C、16G、100G数据盘 增加研发平台,可以纳管50~1000台内,干净主机。

快速部署手册

Tip

在开始操作前,非常严肃的提醒,根据最近2020年到2024年的统计数据,严格按照官方文档操作100%成功率,文档和脚本均不可能出错。如果安装失败,请卸载,仔细阅读官方文档,重新安装,耐心一点,多尝试几次。当然也可以直接放弃,毕竟人生苦短,开心最重要了!如果觉得OpsAny复杂,我们还有更加轻量级的产品OpsAnt,https://www.opsant.com 欢迎使用。 总结了近几年的部署失败原因,提前送上:

  • 不是干净的主机,主机上已经部署了MySQL、低版本的Docker等服务,造成端口冲突或初始化检测不通过。
  • 没有关闭iptables防火墙,导致端口不通。
  • 没有正确修改配置文件。
  • 直接批量复制粘贴的命令,导致有一些命令没有执行完成。
  • 安装完毕后,访问的域名和配置文件中设置的不一致。
  • 域名无法解析(修改hosts文件无效,域名必须要解析,或者使用IP地址)
  • 内存不满足要求,不到最低要求的8G内存。
  • 企业内部网络限制,或者安全设备限制,导致网络不通。
  • 浏览器使用了代理,或者在OpsAny前端有增加了代理。
  • 做了一些很奇怪的操作,太个性了,反正就是不按文档操作。

部署OpsAny PaaS平台

1.安装Docker和初始化使用的软件包,推荐使用Ubuntu 22.04。

1.1 安装环境检查

- 检查主机是否可以正常访问互联网,主机内存不低于8G。
- 关闭防火墙,设置规范化主机名,保证主机名可以解析。
- 可以使用IP地址访问OpsAny,如果使用域名访问,请确保域名可以真实解析(修改hosts无效)

1.2 安装Docker和MySQL客户端

# 请注意,不要整体复制粘贴执行,会造成有些命令执行不成功,但是又没发现。
# step 1: 安装必要的一些系统工具
sudo apt-get -y update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce docker-compose jq uuid wget mysql-client git ntpdate
systemctl enable --now docker
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate time1.aliyun.com
pip3 install -U pip setuptools -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip3 install requests==2.25.1 grafana-api==1.0.3 mysql-connector==2.2.9 SQLAlchemy==1.4.22 bcrypt==4.0.1 \
         -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

如果是Ubuntu 16.04 需要额外安装Python3和pip sudo apt-get -y install python3 python3-pip

1.1 安装环境检查

- 检查主机是否可以正常访问互联网,主机内存不低于8G。
- 关闭SELinux和防火墙,设置规范化主机名,保证主机名可以解析。
- 可以使用IP地址访问OpsAny,如果使用域名访问,请确保域名可以真实解析(修改hosts无效)

1.2 安装Docker和MySQL

# 请注意,不要整体复制粘贴执行,会造成有些命令执行不成功,但是又没发现。
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y git uuid wget docker-ce docker-compose mariadb jq python3 python3-pip python3-devel ntpdate unzip
systemctl enable --now docker
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate time1.aliyun.com
pip3 install -U pip setuptools -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip3 install requests==2.25.1 grafana-api==1.0.3 mysql-connector==2.2.9 SQLAlchemy==1.4.22 bcrypt==4.0.1 \
         -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

1.1 安装环境检查

- 检查主机是否可以正常访问互联网,主机内存不低于8G。
- 关闭SELinux和防火墙,设置规范化主机名,保证主机名可以解析。
- 可以使用IP地址访问OpsAny,如果使用域名访问,请确保域名可以真实解析(修改hosts无效)

1.2 安装Docker和MySQL

# 请注意,不要整体复制粘贴执行,会造成有些命令执行不成功,但是又没发现。
dnf config-manager --add-repo=http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf -y install docker-ce --nobest
dnf -y install mariadb jq git uuid unzip
systemctl enable --now docker
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
pip3 install -U pip setuptools -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip3 install requests==2.25.1 grafana-api==1.0.3 mysql-connector==2.2.9 SQLAlchemy==1.4.22 bcrypt==4.0.1 \
         -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

1.1 安装环境检查

- 检查主机是否可以正常访问互联网,主机内存不低于8G。
- 关闭SELinux和防火墙,设置规范化主机名,保证主机名可以解析。
- 可以使用IP地址访问OpsAny,如果使用域名访问,请确保域名可以真实解析(修改hosts无效)

1.2 安装Docker和MySQL

# 请注意,不要整体复制粘贴执行,会造成有些命令执行不成功,但是又没发现。
dnf config-manager --add-repo=http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf -y install docker-ce --nobest
dnf -y install mariadb jq git uuid python3 gcc gcc-c++ glibc rust cargo unzip
systemctl enable --now docker
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
pip3 install -U pip setuptools -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip3 install setuptools-rust==1.1.2 requests==2.25.1 grafana-api==1.0.3 mysql-connector==2.2.9 SQLAlchemy==1.4.22 bcrypt==4.0.1 \
         -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

1.1 安装环境检查

- 检查主机是否可以正常访问互联网,主机内存不低于8G。
- 关闭SELinux和防火墙,设置规范化主机名,保证主机名可以解析。
- 可以使用IP地址访问OpsAny,如果使用域名访问,请确保域名可以真实解析(修改hosts无效)

1.2 安装Docker和MySQL

# 请注意,不要整体复制粘贴执行,会造成有些命令执行不成功,但是又没发现。
dnf config-manager --add-repo=http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf -y install docker-ce --nobest
dnf -y install mariadb jq git uuid python3 gcc gcc-c++ glibc rust cargo unzip
systemctl enable --now docker
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
pip3 install -U pip setuptools -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip3 install setuptools-rust==1.1.2 requests==2.25.1 grafana-api==1.0.3 mysql-connector==2.2.9 SQLAlchemy==1.4.22 bcrypt==4.0.1 \
         -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

1.1 安装环境检查

- 检查主机是否可以正常访问互联网,主机内存不低于8G。
- 关闭SELinux和防火墙,设置规范化主机名,保证主机名可以解析。
- 可以使用IP地址访问OpsAny,如果使用域名访问,请确保域名可以真实解析(修改hosts无效)

1.2 安装Docker和MySQL

# 请注意,不要整体复制粘贴执行,会造成有些命令执行不成功,但是又没发现。
yum -y install docker mariadb jq git uuid python3 gcc gcc-c++ glibc rust cargo unzip
systemctl enable --now docker
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
pip3 install -U pip setuptools -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip3 install setuptools-rust==1.1.2 requests==2.25.1 grafana-api==1.0.3 mysql-connector==2.2.9 SQLAlchemy==1.4.22 bcrypt==4.0.1 \
         -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

2.克隆PaaS代码

cd /opt && git clone --depth=1  https://gitee.com/unixhot/opsany-paas.git
cd /opt && git clone --depth=1 https://github.com/unixhot/opsany-paas.git

3.修改安装配置【必须修改】

Danger

注意!注意!注意!如果没有域名,或者域名不能解析,请设置为IP地址,修改hosts文件无法完成安装。 默认情况下OpsAny PaaS和OpsAny Proxy部署在一台机器上,PROXY_LOCAL_IP和LOCAL_IP是相同的,如果平台要管理外网主机,请将PROXY_PUBLIC_IP设置为公网IP地址,也可以设置为域名,但是要求域名可以真实解析,修改hosts无效。如果你是本地实验环境,那么请全部设置为本地IP地址即可。

  • Step1: 从配置模板生成配置文件
# 从配置模版复制生成配置文件
cd /opt/opsany-paas/install && cp install.config.example install.config
  • Step2: 修改配置文件

脚本执行过程中,脚本会自动生成随机字符串,替换配置文件中的INIT_PASSWORD。如果你想自定义密码,可以直接修改即可。

vim /opt/opsany-paas/install/install.config
# 请修改为访问OpsAny的域名,没有域名请设置为公网IP或者内网IP地址,修改hosts解析无用。一定要修改!不支持自定义端口。
DOMAIN_NAME=192.168.56.11

# 请修改为安装OpsAny的本机的内网IP地址。用于进程监听,连接数据库做初始化等等。一定要修改!
LOCAL_IP=192.168.56.11

# 如果是公网部署,需要设置公网IP地址,如果是内网部署,可以保持默认。
PROXY_PUBLIC_IP=192.168.56.11

4.执行安装脚本进行PaaS平台部署

安装之前请确定配置修改正确,不然会安装失败,如果失败可以执行./uninstall.sh 进行卸载,然后重新安装。

# 执行过程不能有任何异常报错,警告可以忽略。
cd /opt/opsany-paas/install/
./paas-install.sh install

镜像拉取可能较慢,请耐心等待。如果安装失败,可以执行uninstall.sh,然后重新执行安装,必须保证全程无报错,方可继续。

5.访问域名测试,默认用户名admin 密码admin,在未安装SaaS应用之前,请勿修改admin密码,请部署完毕再修改。

  • 访问地址:https://DOMAIN_NAME/ 请注意,这里访问的是你设置的DOMAIN_NAME,必须一致。如果出现,输入账号和密码后,一直循环打开登录页面,就是访问的地址和配置的DOMAIN_NAME不相同导致的。

Tip

此时仅仅是部署了PaaS平台,还未部署任何的应用,需要部署应用之后才可以使用,当前打开是空的开发工作台。这个是一个开源的运维PaaS开发平台,如果你是一个运维开发工程师,欢迎加入我们的运维开发微信交流群,可以在下载邮件中获取入口。

部署OpsAny SaaS应用

如果确定PaaS平台访问没有问题,现在就可以开始部署SaaS应用了。OpsAny社区版提供了8个SaaS应用,分别是统一权限、工作台、资源平台、管控平台、作业平台、云管平台、基础监控、堡垒机。其中堡垒机已经完全开源,整体安装时间在25分钟左右,网络带宽足够,拉取Docker镜像速度较快情况下,可以在10分钟之内完成。

1.安装SaaS基础模块。

注意:基础模块不会安装DevOps相关的应用平台、流水线、制品仓库、持续部署。安装过程中所有的WARNINGS提示可以忽略,但是Error报错必须处理。

#执行SaaS部署,执行过程不能有任何异常报错,警告可以忽略。
cd /opt/opsany-paas/install/
./saas-ce-install.sh base

2.访问平台,进行基础设置。

安装完毕之后,在控制台会输出访问的地址和密码。请使用Chrome浏览器打开。

  • 访问地址:https://$DOMAIN_NAME
  • 用户名:admin
  • 密码: 为了安全考虑,安装完毕之后自动修改并且输出。同时保存在$INSTALL_PATH/conf/.passwd_env文件中。

3.现在就可以正式使用OpsAny了,强烈建议你,先从快速入门开始,将资源进行纳管,然后再研究其它功能。

如果你遇到问题,建议先看下常见问题,看是否有收获。

如果你需要使用基础监控,还需要集成Zabbix,16G内存最佳。

如果你想使用DevOps相关功能,需要再单独准备一台8C 16G主机进行部署。

部署完毕后,想替换HTTPS证书,请按此操作。

在线部署完成后,方可进行离线部署。

生产环境部署规划

OpsAny是分布式的设计,社区版部署默认会将OpsAny Proxy和平台部署在相同主机上,如果你的网络环境复杂,可以根据官方文档部署独立Proxy服务。

内网部署,内网访问

部署场景介绍: 平台部署在内网,仅管理内网主机,无法上公网。
部署需求:
- 需要内网受管主机可以访问到OpsAny平台的80、443、4505、4506、8011、8012、10051端口。 - 可以使用内网IP访问,或者在有内网DNS的情况下,使用内网域名访问。

内网部署,公网访问

部署场景介绍:平台部署在内网,管理内网主机,同时也需要管理外网主机。
部署需求

  • 需要内网主机可以配置公网IP地址和域名,需要内网和公网均可以访问到OpsAny平台的80、443、4505、4506、8011、8012、10051。云主机请提前设置好安全组,再开始部署。
  • 在【管控平台】-【采控中心】中需要设置外网和内网控制器地址。但是访问平台的地址只能三选一(域名、公网IP、内网IP),为了安全性,不支持内外网混合访问。建议使用域名。

公网部署,公网访问

部署场景介绍:平台部署在公网,可以管理内网主机(需要使用Proxy),也可以管理外网主机。
部署需求

  • 云主机请提前设置好安全组,再开始部署。需要内网和公网均可以访问到OpsAny平台的80、443、4505、4506、8011、8012、10051。

支持列表

测试通过系统:

  • CentOS 7.x所有版本
  • CentOS 8.x所有版本
  • Ubuntu 16.04、18.04、20.04、22.04
  • UOS v20
  • 麒麟 v10
  • 包括其它还未测试,但是可以允许的系统

Agent/SSH支持系统列表:

  • CentOS 6.0(仅SSH) 7.x 8.x版本
  • Ubuntu 16.04、18.04、20.04 22.04
  • Debian 12.0.0 11.1.0、10.0.0、9.0.0
  • Windows 2010 Server以上版本
  • AlmaLinux 8.3、8.4、9.0
  • Rocky Linux 8.4、8.5、9.0
  • EulerOS 2.5
  • UOS v20
  • 中标麒麟、银河麒麟
  • 包括其它还未测试,但是可以允许的系统

部署服务明细

序号 服务名称 监听端口 备注
基础服务 OpenResty 80、443、8011、8012 提供Web访问
MySQL 3306 提供数据存储
MongoDB 27017 提供文档型数据存储
RabbitMQ 5672、15672 提供消息队列服务
Redis 6379 提供缓存服务
Elasticsearch 9200 提供日志存储和搜索
平台服务 appengine 8000 SAAS服务支持
paas 8001 开发中心服务
esb 8002 企业服务总线
login 8003 统一登陆
WebSocket 8004 为堡垒机提供websocket
Proxy 8010(8011、8012) 用于多集群管理,8011对应https,8012对应http
应用服务 StackStorm 8005 提供执行编排服务
Zabbix 8006 提供监控服务
Grafana 8007 提供可视化图表
paasagent 4245、8085 SAAS服务部署
RDP-websocket 4822 连接Windows服务器
备注 管理外网主机,平台需要独立地址并对外端口:80、443、4505、4506、8011、8012、10051

Document