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

OpsAny社区版部署


OpsAny默认使用Docker进行容器化单机部署,主要分为四大步骤:安装依赖软件包、部署PaaS服务、部署SaaS服务、下载Agent包。

部署主机配置

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

配置推荐 操作系统 主机配置 备注
最低体验配置 CentOS 7.9 4C、8G、50G 干净主机,关闭SELinux和防火墙。
生产建议配置 CentOS 7.9 8C、16G、100G 干净主机,关闭SELinux和防火墙。

快速部署手册

Tip

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

  • 不是干净的主机,主机上已经部署了MySQL等服务,造成端口冲突。
  • 没有正常修改配置文件,导致配置文件中很多IP地址还是默认的。
  • 直接批量复制粘贴的命令,导致有一些命令没有执行完成。
  • 安装完毕后,访问的域名和配置文件中设置的不一致。
  • 域名无法解析(修改hosts文件无效,域名必须要解析,或者使用IP地址)
  • 内存不满足要求,不到最低要求的8G内存。
  • 企业内部网络限制,或者安全设备限制,导致网络不通。
  • 做了一些很奇怪的操作,太个性了,反正就是不按文档操作。

部署OpsAny PaaS平台

1.安装Docker和初始化使用的软件包

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
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 docker-compose --nobest
dnf -y install mariadb jq git uuid
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。
- 关闭防火墙,设置规范化主机名,保证主机名可以解析。
- 可以使用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

2.克隆代码

cd /opt && git clone https://gitee.com/unixhot/opsany-paas.git
cd /opt && git clone 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: 设置配置的环境变量(不要直接复制粘贴,需要进行修改。)
# 请修改为访问OpsAny的域名,没有域名请设置为公网IP或者内网IP地址,修改hosts解析无用。一定要修改!
DOMAIN_NAME=192.168.56.11

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

# 请修改为安装OpsAny的本机的外网地址。如果没有外网地址,可以使用内网IP,但是无法通过Agent管理外网主机,仅支持SSH。
PROXY_PUBLIC_IP=192.168.56.11

# 请修改为安装OpsAny的本机的内网IP地址。用于内网Agent和OpsAny Proxy之间的通信,默认应该和LOCAL_IP相同。
PROXY_LOCAL_IP=192.168.56.11
  • Step3: 根据上面设置的环境变量,批量修改访问域名和IP地址
sed -i "s/demo.opsany.com/${DOMAIN_NAME}/g" install.config
sed -i "s/proxy.opsany.com/${PROXY_PUBLIC_IP}/g" install.config
sed -i "s/192.168.56.11/${LOCAL_IP}/g" install.config
  • Step4: 查看修改结果,可以继续修改其它的账号和密码,注意访问域名必须真实可以解析,修改hosts解析无用,可以使用IP地址。
cat /opt/opsany-paas/install/install.config

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

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

# 执行PaaS部署,执行过程不能有任何异常报错。
cd /opt/opsany-paas/install/
./paas-install.sh install

# 检查部署容器,请确保所有容器都运行正常,如遇到问题请查看官方文档,常见问题。
docker ps -a

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

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

  • 访问地址:https://DOMAIN_NAME/ 请注意,这里访问的是你设置的DOMAIN_NAME!!!,而不是你认为的其它访问方式。
  • 【不要相信自己,要相信计算机,它说你错了。那么你真实的错误机率高达99%。- OpsAny】

Tip

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

部署OpsAny基础SaaS应用

如果确定PaaS平台访问没有问题,现在就可以开始部署SaaS应用了。OpsAny社区版提供了10个SaaS应用,分别是统一权限、工作台、资源平台、管控平台、作业平台、云管平台、基础监控、应用平台、可视化平台、堡垒机,其中堡垒机已经完全开源,其它社区版平台会逐步开源,整体安装时间在25分钟左右,如果是云主机,下载速度较快可以在10分钟之内完成。

1.安装SaaS基础模块。

注意:基础模块不会安装基础监控、可视化平台、应用平台。安装过程中所有的WARNINGS提示可以忽略,但是Error报错必须处理。

cd /opt/opsany-paas/install/
#安装基础平台
./saas-ce-install.sh base

2.下载OpsAny Agent软件包。

将agent目录放置在uploads下面,为后续使用时提供下载。

# 安装Agent文件
cd /opt/opsany/uploads/
wget https://opsany-saas.oss-cn-beijing.aliyuncs.com/opsany-agent-1.6.0.tar.gz
tar zxf opsany-agent-1.6.0.tar.gz

# 安装内置文档
cd /opt/opsany/uploads/ 
wget https://opsany-saas.oss-cn-beijing.aliyuncs.com/opsany-docs-ce-1.6.6.tar.gz
tar zxf opsany-docs-ce-1.6.6.tar.gz

3.访问平台,设置License。

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

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

访问后会提示设置License,请在官网下载页面,申请证书。

4.申请证书: 申请证书

申请完毕之后,请查看邮箱,证书密钥会发送到您申请时填写的邮箱中(邮件一般在1分钟内,可以收到,如果超过1分钟,请检查输入的邮箱是否正确,Gmail邮箱无法接收到邮件)。填写邮件中的授权人和授权密钥即可,社区版授权为99年,无任何管理数量限制,可以放心使用。

5.现在就可以正式使用OpsAny了,有任何问题,可以在交流群提问。对了,如果要纳管外网主机别忘了开通防火墙80、443、4505、4506、8011、8012。

强烈建议你,先从快速入门开始,将资源进行纳管,然后再研究其它功能。

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

Tip

如果你有安装问题,请仔细查看本文档,如还不能解决,请将install.config配置,完整的安装步骤和输出贴到微信交流群中。接下来复杂的才刚刚开始,如果你需要使用基础监控和应用平台还需要进行集成工作。

生产环境部署规划

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支持系统列表:

  • CentOS 6.x 7.x 8.x版本
  • Ubuntu 16.04、18.04、20.04
  • Debian 11.1.0、10.0.0、9.0.0
  • Windows 2010 Server以上版本
  • 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