OpsManage基于docker的部署与使用

前言

  • 自动化运维管理工具OpsManagericon-default.png?t=N7T8http://mp.weixin.qq.com/s?__biz=Mzk0NTQ3OTk3MQ==&mid=2247487736&idx=1&sn=efef3a930b88649033f61942a77f42d2&chksm=c31598b4f46211a240ffc5360ae238b27d0f495fcbe8dc18abdbd79bc25c00726f74a7312dd0&scene=21#wechat_redirect

环境

  • OS:Rocky Linux 9.3

  • docker-ce-26.1.1

  • docker-compose v2.27.0

  • OpsManage v3.0.5

配置docker

参考:

Docker学习入门icon-default.png?t=N7T8http://mp.weixin.qq.com/s?__biz=Mzk0NTQ3OTk3MQ==&mid=2247486316&idx=1&sn=9d3413d38adc8ccce13aacf5c45d68ea&chksm=c3158320f4620a36ef3cfd482f32f5ba2eebac8dc4a612408f203f66ee507d21bb7f3586be7c&scene=21#wechat_redirect

安装docker

# 安装基础包,添加docker源
dnf install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/rhel/docker-ce.repo# 安装docker-ce
dnf install -y docker-ce# 启动docker服务并配置自启及查看状态
systemctl enable docker --now && systemctl status docker

安装docker-compose

GitHub下载:https://github.com/docker/compose/releases

备用地址:https://pan.baidu.com/s/12EkNfgGBcz8OivFIdZF4VA?pwd=ch60

# 下载docker-compose并添加执行权限
curl -L https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose# 检查版本
docker-compose -v

添加图片注释,不超过 140 字(可选)

配置OpsManage

获取代码

GitHub下载:https://github.com/welliamcao/OpsManage/releases 备用地址:https://pan.baidu.com/s/11vNzwO6P5zLD7CzT-FZTsQ?pwd=plcj

构建镜像

# 下载
curl -L https://github.com/welliamcao/OpsManage/archive/refs/tags/v3.0.5.tar.gz -o /opt/OpsManage.tar.gz
# 解压并改名
cd /opt
tar xzvf OpsManage-3.0.5.tar.gz
mv OpsManage-3.0.5/ OpsManage# 构建基础镜像
cd OpsManage/ && sh docker/build.sh

修改配置文件conf/opsmanage.ini

  • host

  • user

  • password

[db]
engine = mysql
host = 192.168.199.152
port = 3306
user = root
password = Linuxjsz
database = opsmanage
[redis]
#ansible实时输出数据
host = 127.0.0.1
port = 6379
password = Linuxjsz
ansible_db = 3
celery_db = 4
default_db = 0
[amqp]
#celery消息队列中间件
host = 127.0.0.1
port = 5672
user = guest
password = guest
[deploy]
path = /var/lib/opsmanage/workspaces/
[ldap]
#启动ldap认证没有可以设置为false
enable = false
server = 192.168.10.128
port = 389
bind_dn = cn=root,dc=opsmanage,dc=com
bind_password = 123456
search_dn = ou=People,dc=opsmanage,dc=com
filter = OpenLDAP
[inception]
#SQL审核工具没有可以设置为false
enable = false
host = 192.168.1.233
port = 6669
backup_host = 192.168.1.201
backup_passwd = Linuxjsz
backup_user = root
backup_port = 3306
[email]
#发送邮箱
smtp_account = test@163.com
smtp_host = smtp.163.com
smtp_passwd = Linuxjszx12
[apply]
max_task = 10
max_expire_sec = 3600

修改配置文件docker/docker-compose.yml

  • 将opsmanage.ini和docker-compose.yml文件中相关密码配置一致。

  • MYSQL_USER

  • MYSQL_PASSWORD

  • MYSQL_ROOT_PASSWORD

sed -ri 's@/mnt/@/opt/@' /opt/OpsManage/docker/docker-compose.yml
sed -ri 's@- /data/apps/@- /opt/OpsManage/@' /opt/OpsManage/docker/docker-compose.yml
cat /opt/OpsManage/docker/docker-compose.yml
#version: "3"
services:db:container_name: dbimage: mysql:5.6ports:- "3306:3306"environment:- MYSQL_HOST=localhost- MYSQL_DATABASE=opsmanage- MYSQL_USER=opsmanage- MYSQL_PASSWORD=Linuxjsz- MYSQL_ROOT_PASSWORD=Linuxjszvolumes:- /opt/OpsManage/mysql:/var/lib/mysqlrestart: alwaysnetworks:- defaultredis:container_name: redisimage: redis:3.2.8command: redis-serverports:- "6379:6379"volumes:- /opt/OpsManage/redis:/data/redisnetworks:- defaultrabbitmq:container_name: rabbitmqimage: rabbitmq:managementports:- "5672:5672"- "15672:15672"networks:- defaultops_web:image: opsmanage-base:latestcontainer_name: ops_webenvironment:MYSQL_DATABASE: opsmanageMYSQL_USER: "opsmanage"MYSQL_PASSWORD: "Linuxjsz"ports:- "8000:8000" #vim /opt/OpsManage/OpsManage/settings.py文件里面的DEBUG设置为DEBUG = Truevolumes:- /opt/OpsManage:/data/apps/opsmanage- /opt/OpsManage/upload:/data/apps/opsmanage/upload- /opt/OpsManage/logs:/data/apps/opsmanage/logscommand: bash /data/apps/opsmanage/docker/start.shlinks:- db- redis- rabbitmqdepends_on:- db- redis- rabbitmqrestart: alwaysnetworks:- default
#  nginx:
#     image: opsmanage-nginx
#     container_name: nginx
#     ports:
#       - "80:80"
#     volumes:
#       - /opt/OpsManage/static:/usr/share/nginx/html/static
#     depends_on:
#       - ops_web
#     links:
#       - ops_web:ops_web
#     networks:
#       - default
networks:default:

(可选)修改Django配置文件OpsManage/setting.py

  • 需要使用Django来访问静态文件时需要修改DEBUG = True(Django仅在调试模式下能对外提供静态文件访问)

(可选)构建静态文件镜像

cd /opt/OpsManage
docker build -t opsmanage-static -f docker/Dockerfile-static .

部署服务

cd /opt/OpsManage/docker/
docker-compose up -d

查看docker状态

docker ps -a

cd /opt/OpsManage/docker/
docker-compose stats

创建Web管理员

docker exec -it ops_web bash
python3 manage.py createsuperuser

访问Web

  • http://ip:8000

  • 登录信息为上面创建的账号密码

单独部署服务

启动redis服务

cd /opt/OpsManage/docker/
docker-compose up -d redis

查看日志

docker-compose logs -f

启动db服务

 
docker-compose up -d db

查看日志,会有几次重启过程。

docker-compose logs -f

启动rabbitmq服务

docker-compose up -d rabbitmq

查看日志

docker-compose logs -f

启动ops_web服务

docker-compose up -d ops_web

查看日志

docker-compose logs -f

异常处理

查看ops_web服务启动日志及访问Web报错

访问web显示,报错原因为数据不匹配导致。

重建数据库(密码为前面配置文件设置好的)

docker exec -it db bashmysql -uroot -pdrop database opsmanage;create database opsmanage;flush privileges;mysql> exitroot@96c2940efa5b:/# exit

初始化数据库

docker exec -it ops_web bashpython3 manage.py makemigrations account
python3 manage.py makemigrations wiki
python3 manage.py makemigrations orders
python3 manage.py makemigrations navbar
python3 manage.py makemigrations databases
python3 manage.py makemigrations asset
python3 manage.py makemigrations deploy
python3 manage.py makemigrations cicd
python3 manage.py makemigrations sched
python3 manage.py makemigrations apply
python3 manage.py migrate

好了,本次部署就到这里了,登陆后测试了一下,还是不错的,但试了一下左下角3个功能无反应,具体待后续排查。

来自: OpsManage基于docker的部署与使用icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=Mzk0NTQ3OTk3MQ==&mid=2247487794&idx=1&sn=e60615c882cd0fc428a8129c6b75dfb8&chksm=c315997ef46210683775c202b36a7b72fc5521a0bd979c69a6b2b6818632b5da374e1c3bb715&token=113329682&lang=zh_CN#rd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/329681.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[IMX6ULL驱动开发]-Linux对中断的处理(一)

目录 中断概念的引入 ARM架构中断的流程 异常向量表 Linux系统对中断的处理 ARM对程序和中断的处理 Linux进程中断处理 中断概念的引入 如何理解中断,我们可以进行如下抽象。把CPU看做一个母亲,当它正在执行任务的时候,可以看为是一个母…

【css】引入背景图时候,路径写入@会报错

看报错信息 我的写法 解决办法 在前面加个~

ThreadLocal原理及使用

一、引言 在Java多线程编程中,ThreadLocal是一个非常有用的工具,它提供了一种将对象与线程关联起来的机制,使得每个线程都可以拥有自己独立的对象副本,从而避免了线程安全问题。然而,使用不当会导致内存泄漏问题。 二…

【VTKExamples::Texture】第六期 TextureThreshold

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例TextureThreshold,并解析接口vtkTexture,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~Y…

python使用base加密解密

原理 base编码是一种加密解密措施,目前常用的有base16、base32和base64。其大致原理比较简单。 以base64为例,base64加密后共有64中字符。其加密过程是编码后将每3个字节作为一组,这样每组就有3*824位。将每6位作为一个单位进行编码&#xf…

MySQL主从复制+读写分离(ShardingJDBC)

MySQL主从复制读写分离 MySQL主从复制介绍二进制日志: MySQL的主从复制原理如下搭建主从复制准备工作主库配置从库配置 测试 读写分离案例ShardingJDBC介绍数据库环境初始工程导入读写分离配置测试1). 保存数据2). 修改数据3). 查询数据4). 删除数据 MySQL主从复制 …

vue3结合element-plus之如何优雅的使用表格

背景 表格组件的使用在后台管理系统中是非常常见的,但是如果每次使用表格我们都去一次一次地从 element-plus 官网去 复制、粘贴和修改成自己想要的表格。 这样一来也说得过去,但是如果我们静下来细想不难发现,表格的使用都是大同小异的,每次都去复制粘贴,对于有很多表格…

【日记】跟奇安信斗智斗勇,败下阵来(416 字)

正文 今天一个客户都没有,让我快怀疑我们银行是不是要倒闭了…… 因为内外网 u 盘不知所踪,所以重新制了一个。深刻体会到了奇安信有多烂。有两个 u 盘,奇安信似乎把主控写坏了,插上电脑有反应,但是看不见盘符&#xf…

Linux中vim的基本使用

目录 vim中的三种模式以及基本操作命令模式(默认模式)插入模式底行模式 命令模式下的命令底行模式下的命令 vim是Linux和Unix环境下最基本的文本编辑器,类似于windows上的记事本 vim和Visual studio相比,vim并不集成,vim只能用来写代码 VS把写…

CopyOnWriteArrayList原理分析

1.简介 JDK1.5之前,由于那个版本尚未退出专门运行在并发环境下的集合,对于List类型,我明只能选择Vector或者Stack这种老古董,但是它们效率太低(全部的增删改方法均被synchronized修饰着,那个时候的synchronized由于还…

【有手就行】使用你自己的声音做语音合成,CPU都能跑,亲测有效

此文介绍在百度飞桨上一个公开的案例,亲测有效。 厌倦了前篇一律的TTS音色了吗?打开短视频听来听去就是那几个声音,快来试试使用你自己的声音来做语音合成吧!本教程非常简单,只需要你能够上传自己的音频数据就可以(建议…

Helm安装kafka3.7.0无持久化(KRaft 模式集群)

文章目录 2.1 Chart包方式安装kafka集群 5.开始安装2.2 命令行方式安装kafka集群 搭建 Kafka-UI三、kafka集群测试3.1 方式一3.2 方式二 四、kafka集群扩容4.1 方式一4.2 方式二 五、kafka集群删除 参考文档 [Helm实践---安装kafka集群 - 知乎 (zhihu.com)](https://zhuanlan.…

离散数学--图论

目录 1.简单概念 2.握手定理 3.点割集 4.边割集 5.点连通度和边连通度 6.Dijstra算法&&最短路径 7.有向图的连通性 8.图的矩阵表示 9.欧拉图问题 10.哈密尔顿图 1.简单概念 (1)这个里面的完全图比较重要,完全图是例如k3,k5这…

vue项目报错:internal/modules/cjs/loader.js:892 throw err;

前言: vue项目中无法正常使用git,并报错情况。 报错信息: internal/modules/cjs/loader.js:892throw err;^ Error: Cannot find module D:\project\sd_wh_yth_front\node_modules\yorkie\src\runner.js 报错处理: npm install y…

局部直方图均衡化去雾算法

目录 1. 引言 2. 算法流程 3. 代码 4. 去雾效果 1. 引言 局部直方图算法是一种基于块的图像去雾方法,它将图像分割为若干个块,并在每个块内计算块的局部直方图。通过对各个块的直方图进行分析和处理,该算法能够更好地适应图像中不同区域的…

九宫格转圈圈抽奖活动,有加速,减速效果

在线访问demo和代码在底部 代码&#xff0c;复制就可以跑 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…

Git远程控制

文章目录 1. 创建仓库1.1 Readme1.2 Issue1.3 Pull request 2. 远程仓库克隆3. 推送远程仓库4. 拉取远程仓库5. 配置Git.gitignore配置别名 使用GitHub可以&#xff0c;采用Gitee也行 1. 创建仓库 1.1 Readme Readme文件相当于这个仓库的说明书&#xff0c;gitee会初始化2两份…

解除网页禁止选择

控制台输入以下命令 复制&#xff1a;javascript:void(document.body.οncοpy) 可选&#xff1a;javascript:void(document.body.onselectstart) 拖拉&#xff1a;javascript:void(document.body.οnmοuseup)

好的架构是进化来的,不是设计来的

很多年前&#xff0c;读了子柳老师的《淘宝技术这十年》。这本书成为了我的架构启蒙书&#xff0c;书中的一句话像种子一样深埋在我的脑海里&#xff1a;“好的架构是进化来的&#xff0c;不是设计来的”。 2015 年&#xff0c;我加入神州专车订单研发团队&#xff0c;亲历了专…

Android ART 虚拟机简析

源码基于&#xff1a;Android U 1. prop 名称选项名称heap 变量名称功能 dalvik.vm.heapstartsize MemoryInitialSize initial_heap_size_ 虚拟机在启动时&#xff0c;向系统申请的起始内存 dalvik.vm.heapgrowthlimit HeapGrowthLimit growth_limit_ 应用可使用的 max…