暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OpsManage基于docker的部署与使用

Linux技术宅 2024-05-08
449

点击:Linux技术宅,关注我!!!

Every Day

[作者] 刘禹锡 [朝代] 唐

朱雀桥边野草花,乌衣巷口夕阳斜。

旧时王谢堂前燕,飞入寻常百姓家。



前言




环境

  • OS:Rocky Linux 9.3

  • docker-ce-26.1.1

  • docker-compose v2.27.0

  • OpsManage v3.0.5




配置docker


  • 安装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




      配置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

          sed -ri "s@welliam@Linuxjsz@g" opt/OpsManage/conf/opsmanage.ini
          cat /opt/OpsManage/conf/opsmanage.ini
            [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: db
                image: mysql:5.6
                ports:
                - "3306:3306"
                environment:
                - MYSQL_HOST=localhost
                - MYSQL_DATABASE=opsmanage
                - MYSQL_USER=opsmanage
                - MYSQL_PASSWORD=Linuxjsz
                - MYSQL_ROOT_PASSWORD=Linuxjsz
                volumes:
                - /opt/OpsManage/mysql:/var/lib/mysql
                restart: always
                networks:
                - default
                redis:
                container_name: redis
                image: redis:3.2.8
                command: redis-server
                ports:
                - "6379:6379"
                volumes:
                - /opt/OpsManage/redis:/data/redis
                networks:
                - default
                rabbitmq:
                container_name: rabbitmq
                image: rabbitmq:management
                ports:
                - "5672:5672"
                - "15672:15672"
                networks:
                - default
                ops_web:
                image: opsmanage-base:latest
                container_name: ops_web
                environment:
                MYSQL_DATABASE: opsmanage
                MYSQL_USER: "opsmanage"
                MYSQL_PASSWORD: "Linuxjsz"
                ports:
                - "8000:8000" #vim opt/OpsManage/OpsManage/settings.py文件里面的DEBUG设置为DEBUG = True
                volumes:
                - /opt/OpsManage:/data/apps/opsmanage
                - /opt/OpsManage/upload:/data/apps/opsmanage/upload
                - /opt/OpsManage/logs:/data/apps/opsmanage/logs
                command: bash data/apps/opsmanage/docker/start.sh
                links:
                - db
                - redis
                - rabbitmq
                depends_on:
                - db
                - redis
                - rabbitmq
                restart: always
                networks:
                - 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 bash


                                            mysql -uroot -p


                                            drop database opsmanage;


                                            create database opsmanage;


                                            flush privileges;


                                            mysql> exit


                                            root@96c2940efa5b:/# exit


                                            • 初始化数据库

                                              docker exec -it ops_web bash


                                              python3 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个功能无反应,具体待后续排查。



                                              分享、在看与点赞

                                              只要你点,我们就是胖友

                                              文章转载自Linux技术宅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                              评论