• 自动化运维管理平台TASKCTL如何在Docker安装部署


    介绍: TASKCTL是一款批量调度自动化技术专业产品

    制作镜像

    由于在dockerhub上没有查询到有关于TASKCTL的镜像就只能自己制作了,但由于本人仅是对软进 行件部署安装,没有实际的应用场景,所有制作的镜像也仅提供了最基础的运行环境。这也是给想要 在Docker上部署TASKCTL的小伙伴提供一点思路,可以根据个人的不同需求来定制自己的镜像。

    准备工作

    首先从官网下载安装包 (cir_linux_64_8.0.tar、taskctl-web-8.0.tar)

    TASKCTL下载安装:www.taskctl.com

    Docker拉取一个centos的基本镜像:

    1. 1 docker pull centos
    2. 2 ## centos latest 5d0da3dc9764 9 months ago 231MB

    制作taskctl-base镜像

    先启动一个centos容器,将cir_linux_64_8.0.tar包copy到容器中。

    1. 1 # 后台启动centos并将日志输出到黑洞文件,这样防止无交互容器直接停止
    2. 2 docker run -d --name taskctl-base centos tail -f /dev/null
    3. 3 # copy 两个压缩包到容器的/root 目录下(这个根据个人喜好到哪个目录)
    4. 4 docker cp 包所在位置/cir_linux_64_8.0.tar taskctl-base:/root
    5. 5 # 进入容器
    6. 6 docker exec -it taskctl-base /bin/bash

    由于安装包中用到了诸如 ifconfig 、vim的基础命令(具体需求哪些我也没仔细测),没有的话安 装会报错,所以需要安装一下基础命令。

    1. 1 yum install net-tools.x86_64 -y
    2. 2 yum install vim -y

    如果报错:Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

    进入/etcyum.repos.d/目录修改centos文件内容:

    1. 1 sed-i's/mirrorlist/#mirrorlist/g'/etc/yum.repos.d/CentOS-*
    2. 2 sed-i's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

    进入容器测试安装一次,如果安装成功那么就可以打包成基础镜像了。安装教程官网也有,就是 linux下安装TASKCTL,这里就简要说一下。

    1. 1 #配置环境变量
    2. 2 vim/etc/profile
    3. 3 #写入内容
    4. 4 exportTASKCTLDIR=$HOME/taskctl
    5. 5 exportPATH=$PATH:$TASKCTLDIR/bin:.
    6. 6 #生效
    7. 7 source/etc/profile
    8. 8 #查看centos的ip地址,安装的时候用(我这里是127.17.0.2)
    9. 9 # 安装java环境
    10. 10 yum install java-1.8.0-openjdk-devel.x86_64

    安装TASKCTL核心服务

    1. 1 cd/root/cirinst/
    2. 2 ./inst

    选择2.自定义安装---->调度服务安装(无高可靠)------>输入ip(127.17.0.2) ----- >端口

    初始化节点并启动

    1. 1 # 初始化
    2. 2 ctlinit
    3. 3 #启动
    4. 4 ctlstart
    5. 5 #查看基本信息,选择1,节点基本信息 6 ctlninfo

    启动web服务(安装了java环境以后),直接解压taskctl-web包运行包下的./startup.sh脚本。 到此处安装成功。确认环境和安装包都没有问题,那么就可以制作镜像了。

    1. 1.#退出并停止容器
    2. 2.exit

    提交镜像

    1.docker commit -a="huangrui" -m="taskctl" taskctl-base huangrui/taskctl-base

    制作基础镜像完成。

    启动服务

    上面制作的基础镜像中带有核心的安装包和web的安装包,满足了taskctl基础环境。一下所有 的容器也是在此镜像的基础上搭建的。

    新建Docker网络

     1 docker network create --driver bridge --subnet 172.17.0.0/16 --gateway 172.17.0.1 taskctl-network

    新建所有的taskctl服务都是用自建的docker-network网络,这样就无需使用ip可以直接使用容器 名进行识别,也减少了由于网络不通出现的错误。

    启动task-service容器

    1. 1 # 80 端口是web服务的端口,配置文件在/root/taskctl-web-8.0.010/conf/application.yml中
    2. 2 docker run -d -p 8888:80 --name docker-task8 huangrui/taskctl-base
    3. 3 # 启动核心服务
    4. 4 docker exec -it docker-task8 ctlinit
    5. 5 docker exec -it docker-task8 ctlstart
    6. 6 docker exec -it docker-task8 /root/taskctl-web-8.0.010/start.sh

    到此访问IP:8888就可以使用TASKCTL服务了

    代理节点

    代理节点的安装和service的其实大同小异,进入taskctl-base中,在安装task服务的时候选择代理 节点安装,然后退出容器,保存镜像即可。这样吧service节点和代理节点镜像分开,对于批量启动仅 需要修改代理的IP即可。

    其他

    由于本教程仅提供思路,所有就没有上传我的镜像,制作起来也不难。主要遇到的坑在于安装代理 节点的时候容器的IP和已安装的节点IP不同,这样批量启动的时候每个容器都去重新安装属实不舒服, 提供两个解决思路:

    1.使用Docker网络,在制作镜像时候配置容器host:

    格式: 镜像名称 ifconfig中的IP

    2. 使用脚本,在大量启动代理节点时修改/root/taskctl/conf目录下的配置地址(ifconfig),也 可以使用启动时固定写死IP

  • 相关阅读:
    论文精读:Focal Loss for Dense Object Detection
    设计模式之装饰器模式
    C# 语法分析器(二)LR(0) 语法分析
    数据优化与可视化:3D开发工具HOOPS在BIM模型轻量化中的作用分析
    Android判断应用是否在前台运行
    高并发系统设计架构方案
    Oracle笔记 之 空值null的处理
    UMC中命令管理模块功能调整说明
    【Linux】进程信号
    目前放疗中可用的一些开源软件
  • 原文地址:https://blog.csdn.net/u010192213/article/details/125422530