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 |