Docker构建OpsManage
要求具备一定docker基础: 构建步骤:
1 2 3 4
| $ mkdir -p /data/opsmanage $ cd /data/opsmanage $ git clone https://github.com/welliamcao/OpsManage.git $ cd OpsManage
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| $ vim start.sh #!/bin/bash echo_supervisord_conf > /etc/supervisord.conf export PYTHONOPTIMIZE=1 cat > /etc/supervisord.conf << EOF [unix_http_server] file=/tmp/supervisor.sock [supervisord] logfile=/tmp/supervisord.log logfile_maxbytes=50MB logfile_backups=10 loglevel=info pidfile=/tmp/supervisord.pid nodaemon=false minfds=1024 minprocs=200 [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket [program:celery-worker-default] command=/usr/bin/python manage.py celery worker --loglevel=info -E -Q default directory=/mnt/OpsManage stdout_logfile=/var/log/celery-worker-default.log autostart=true autorestart=true redirect_stderr=true stopsignal=QUIT numprocs=1 [program:celery-worker-ansible] command=/usr/bin/python manage.py celery worker --loglevel=info -E -Q ansible directory=/mnt/OpsManage stdout_logfile=/var/log/celery-worker-ansible.log autostart=true autorestart=true redirect_stderr=true stopsignal=QUIT numprocs=1 [program:celery-beat] command=/usr/bin/python manage.py celery beat directory=/mnt/OpsManage stdout_logfile=/var/log/celery-beat.log autostart=true autorestart=true redirect_stderr=true stopsignal=QUIT numprocs=1 [program:celery-cam] command=/usr/bin/python manage.py celerycam directory=/mnt/OpsManage stdout_logfile=/var/log/celery-celerycam.log autostart=true autorestart=true redirect_stderr=true stopsignal=QUIT numprocs=1 EOF /usr/bin/supervisord -c /etc/supervisord.conf sleep 3 cd /mnt/OpsManage/ python /mnt/OpsManage/manage.py runserver 0.0.0.0:8000
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| $ vim superuser.json [ { "model": "auth.user", "pk": 1, "fields": { "username": "admin", "password": "pbkdf2_sha256$36000$eijqZp5ctxnE$xxCcAo/Rsuc+HddjGLQ6dUo/kDnuvayazUZ4V3xz52w=", "is_superuser": true, "is_staff": true, "is_active": true } } ]
|
1 2 3 4 5 6 7 8 9 10 11
| $ cd ../ $ vim Dockerfile FROM centos:latest RUN yum install -y wget git 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 sshpass libtool make RUN cd /usr/local/src && wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz -O pip-1.5.5.tar.gz && wget --no-check-certificate https://pypi.python.org/packages/f7/94/eee867605a99ac113c4108534ad7c292ed48bf1d06dfe7b63daa51e49987/setuptools-28.0.0.tar.gz#md5=9b23df90e1510c7353a5cf07873dcd22 RUN cd /usr/local/src && tar -xzvf setuptools-28.0.0.tar.gz && tar -xzvf pip-1.5.5.tar.gz && cd setuptools-28.0.0 && python setup.py install && cd ../pip-1.5.5 && python setup.py install && pip install -U pip && easy_install paramiko==2.4.1 RUN mkdir -p /etc/ansible/ && echo -ne "[defaults]\nlibrary = /usr/share/ansible/my_modules/\nhost_key_checking = False\n" > /etc/ansible/ansible.cfg && echo "welliam" | passwd --stdin root ADD OpsManage /mnt/OpsManage/ RUN pip install -r /mnt/OpsManage/requirements.txt && cd /mnt/OpsManage/ && python manage.py makemigrations OpsManage && python manage.py makemigrations wiki && python manage.py migrate && python manage.py loaddata superuser.json CMD bash /mnt/OpsManage/start.sh EXPOSE 8000
|
:wq 保存退出
2、修改OpsManage setting.py配置文件里面的MySQL与Redis设置
1
| $ vim /data/opsmanage/OpsManage/OpsManage/settings.py
|
3、Docker build构建基础镜像:
1
| $ docker build -t opsmanage:base .
|
注:第一次构建时间会很长,要注意等待或者是否出错
4、Docker run运行刚刚构建的镜像
1
| $ docker run -d --name=opsmanage -v /data/opsmanage/OpsManage:/mnt/OpsManage -p 8000:8000 -p 2222:22 opsmanage:base
|
5、浏览器访问http://ip:8000 默认账户密码是admin/admin