本人自学python,正好工作中使用saltstack,为了不生疏所学python所以自己弄了个平台,当做学习巩固知识。
目前平台还在开发中并不是一个完成品,前端技术渣渣每次都要一点点设计页面和js耗时比写后端还久o(╯□╰)o
有兴趣的朋友可以参考一下 欢迎交流QQ:175714259
环境:
centos7.4
python3.5.2
saltstack version 2017.7.3
依赖软件安装:
yum install subversion git rsync tcpdump -y
svn/git是发布系统所需,svn的版本需1.7或以上,centos7默认满足1.7,centos6默认只有1.6,git版本越新越好。
数据库:mysql5.7.12-mysql8.0.11都可以,账号自行创建,新建一个数据库名
xpgg_oms
,编码字符集是utf8mb4 -- UTF-8 Unicode
,排序是utf8mb4_0900_ai_ci
saltstack 自行安装配置不介绍,master主机至少须安装
salt-master、salt-minion、salt-api、salt-ssh
如不熟悉则按下面步骤操作,熟悉的忽略
下载我的项目并安装依赖:
cd /usr/local
git clone https://github.com/xiaopanggege/xpgg_oms.git
pip3 install -r xpgg_oms/requirements.txt
修改配置settings.py文件
vi /usr/local/xpgg_oms/xiaopgg_project/settings.py修改如下内容:
SITE_SALT_API_URL = 绑定salt-api的url
SITE_SALT_MASTER = 绑定salt-master的minion_id
SITE_SALT_API_NAME = 绑定salt-api的用户名
SITE_SALT_API_PWD = 绑定salt-api的密码
SITE_BASE_SVN_PATH = 绑定发布系统svn检出目录
SITE_BASE_SVN_SYMLINK_PATH = 绑定发布系统同步文件临时目录
数据库连接部分:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'xpgg_oms',
'USER': 'xiaopgg', #你的数据库用户名
'PASSWORD': '123456', #你的数据库密码
'HOST': '', #你的数据库主机,留空默认为localhost
'PORT': '3306', #你的数据库端口,
salt-master的配置文件添加svn同步文件临时目录,目录等于上面settings.py文件中
SITE_BASE_SVN_SYMLINK_PATH
的值,假设为/data/svn_symlink
vi /etc/salt/master 添加如下内容:
file_roots:
svn:
- /data/svn_symlink
以下操作都在cd /usr/local/xpgg_oms/
目录下执行
1.同步数据库:
python3 manage.py makemigrations
python3 manage.py migrate
2.添加管理员用户,
python3 manage.py createsuperuser
按提示创建登录超级用户
3.启动项目:
python3 manage.py runserver 0.0.0.0:8000
或者用supervisor开启项目,我是用supervisor来控制启动的
4.启动定时任务:
python3 manage.py crontab add
定时获取minion信息配置
http://你的ip:8000
#用上面创建的管理员用户登录即可
平台上面salt相关的操作还需要从我另一个项目中下载srv里的sls文件配套使用,默认使用salt的base目录即/srv/salt/,从我的项目中直接下载即可
django的admin登录页被我替换了,所以想要登录admin后台也是通过平台登录页来进入,页面比较渣有兴趣的同学可以帮忙设计下
salt-ssh远程部署minion客户端,调用的sls在
/src/salt/minion/init.sls
里,可以完成自动部署配置ID和启动等,sls内配置的是外网的yum源并且固定2017.7.5版本salt所以需要上网,如果有配置本地yum源可以自行修改
执行部署各种自定义的sls,比如对客户机初始化,安装mysql、nginx、jdk等可以自己添加,自动化运维利器,可以批量部署
这个功能页面暂时没有开发,不过和minion客户端安装是执行类似的代码,这是为了那些不允许安装salt客户端准备的页面
强大的salt命令执行页面,直接把CLI的salt迁移到页面来,并且支持模块自动补全,命令自动补全,命令使用帮助自动加载
命令帮助
可以自定义新增发布,文件推送目前只支持使用svn,svn如果使用https第一次需要到CLI进行一次认证,功能非常个性化,可以按正常流程更新svn->停止应用->同步文件->启动应用,可以单独用来应用停止、启动、同步文件,可以支持对客户端执行命令等等