Docker 一步一步 搭建开源 CMDB平台 第三步: 构建CMDB 平台 OpsManage
Posted Linux Dream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 一步一步 搭建开源 CMDB平台 第三步: 构建CMDB 平台 OpsManage相关的知识,希望对你有一定的参考价值。
说明: 我一次build 完 所以images 包 有1G多 可分层build bash 环境一层 应用程序及启动脚本(shell.sh) 一层
步骤:
1 基础 Images 镜像 sairamnusetty/centos6.8-python2.7.13
2 从github 上 git proect 下来并修改配置文件
3 运行 install-project.sh 自动下载 git proect 在次运行 自动构建docker-images 然后 run proect
整个目录文件
install-project.sh 代码如下: 第一次运行检查当下目录是否存在OpsManage 项目文件 如没有自动从github上git 下来
#!/bin/bash
#author Mrchen 237356573@qq.com
PROCJECT="./OpsManage"
DOCKERFILE="./dockerfile"
run_start() {
#run build-project-image
echo -e "\\033[41;30m正在----Run build-Images-----\\033[0m"
docker build -t python-django:opsmanage-v1 .
#run docker-images
echo -e "\\033[41;30m正在----Docker---Run-Images-----\\033[0m"
docker run --name project -p 80:8000 -d python-django:opsmanage-v1
}
echo -e "\\033[41;30m 正在检查文件 \\033[0m"
if [ ! -d "$PROCJECT" ]; then
echo -e "\\033[41;30m正在-----git clone https://github.com/welliamcao/OpsManage.git----\\033[0m"
yum install wget git -y &&
git clone https://github.com/welliamcao/OpsManage.git
echo -e "\\033[41;30m请先修改modify Redis-host-IP mysql-host-IP user password db---\\033[0m"
echo -e "\\033[41;30m文件位置---./OpsManage/OpsManage/settings.py---\\033[0m"
echo -e "\\033[41;30m 在运行该脚本 \\033[0m"
else
if [[ ! -f "$DOCKERFILE" ]]; then
cat > ./Dockerfile <<\\EOF
# MAINTAINER Mrchen <237356573@qq.com>
# DOCKER-VERSION 1.0
FROM sairamnusetty/centos6.8-python2.7.13
MAINTAINER The CentOS Project <237356573.qq.com>
RUN yum install wget gcc -y
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
RUN yum clean all
RUN yum install epel-release -y
RUN yum repolist
#install django-base-server
RUN yum install zlib zlib-devel readline-devel sqlite-devel bzip2-devel openssl-devel gdbm-devel libdbi-devel ncurses-libs kernel-devel libxslt-devel libffi-devel python-devel mysql-devel zlib-devel mysql-server sshpass gcc wget git openssl-devel -y
#install python-django-pip-base
COPY ./requirements.txt /mnt
RUN pip install -r /mnt/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
#mount proect OpsManage
VOLUME ["/mnt/OpsManage"]
COPY OpsManage /mnt
#run .sh .py
COPY ./loading-mariadb.sh /mnt
COPY ./start-proect.sh /mnt
#开放8000端口
EXPOSE 8000
#load data
RUN chmod +x /mnt/start-proect.sh
#ENTRYPOINT ["/mnt/start-proect.sh"]
CMD ["/mnt/start-proect.sh"]
EOF
echo -e "new pip config"
cat > ./requirements.txt <<\\EOF
django==1.8.17
Celery==3.1.20
django-celery
celery-with-redis
djangorestframework==3.5.3
paramiko
ansible==2.2.2
redis
xlrd
supervisor
MySQL-python
DBUtils
EOF
cat > ./start-proect.sh <<\\EOF
#!/bin/bash
#237356573
OPS_DIR=/mnt
#--------------RUN---Opsmange---------------------------
if [[ ! -d ${OPS_DIR}/OpsManage ]];then
echo "not proectj-DIR "
else
cd ${OPS_DIR}/OpsManage
python ${OPS_DIR}/manage.py migrate
STR=$?
if [[ ! STR -ne 0 ]];then
chmod +x /mnt/loading-mariadb.sh
bash /mnt/loading-mariadb.sh
sleep 1
python ${OPS_DIR}/manage.py runserver 0.0.0.0:8000
else
echo "----------------mysql----loading-----ERROR-------"
fi
fi
EOF
#---------------------------RUN----------------------------------
echo -e "...new--all--files..................."
read -r -p "ls it running?[Y/n]" PROECT
case $PROECT in
[yY][eE][sS]|[yY])
run_start
;;
[nN][oO]|[nN])
echo "-----exit-----"
exit
;;
esac
else
read -r -p "all files exis ls it running?[Y/n]" PROECT
case $PROECT in
[yY][eE][sS]|[yY])
run_start
;;
[nN][oO]|[nN])
echo "-----exit-----"
exit
;;
esac
fi
fi
运行: bash ./install-project.sh
vim ./OpsManage/OpsManage/settings.py 修改 redis mariadb 及 port 我们修改为 172.16.0.200
mariadb 我们修改为:
修改完我们在来看一下 loading-mariadb.sh 该文件为启动时修改python-django 登陆时帐号及密码:
在次运行 bash ./install-project.sh
坐等 查看:
访问 172.16.0.220 user: chen password : admin
images 打包 docker save e5c4cfc89496 > /mnt/opsmanage.ims
images loading进本地 仓库 docker load < /mnt/opsmanage.ims
Tag docker tag e5c4cfc89496 python-django_opsmanage_v1
push 到私有仓库 docker push 172.16.0.230:5000/python-django_opsmanage_v1
还可以写个 compose 在加 swarm集群 也是我接下去要研究学习 还有 k8s 哦!
container (redis,mariadb,Opsmanages)下载地址:
以上是关于Docker 一步一步 搭建开源 CMDB平台 第三步: 构建CMDB 平台 OpsManage的主要内容,如果未能解决你的问题,请参考以下文章
一步一步搭建ZooKeeper + Mesos + Marathon平台管理Docker集群