SaltshakersaltstackWebsaltstacksaltstackMasterSaltshakerRestful APISaltshaker_frontend
saltshaker.conf
$ docker run -p 0.0.0.0:6379:6379 --name saltshaker_redis -e REDIS_PASSWORD=saltshaker -d yueyongyue/redis:08
$ docker run -d --name saltshaker_rabbitmq -e RABBITMQ_DEFAULT_USER=saltshaker -e RABBITMQ_DEFAULT_PASS=saltshaker -p 15672:15672 -p 5672:5672 rabbitmq:3-management
$ docker run -p 0.0.0.0:3306:3306 --name saltshaker_mysql -e MYSQL_ROOT_PASSWORD=123456 -d yueyongyue/saltshaker_mysql:10 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
$ docker run -d -p 0.0.0.0:9000:9000 --name saltshaker_api \
-e REDIS_HOST=192.168.10.100 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD=saltshaker \
-e MYSQL_HOST=192.168.10.100 \
-e MYSQL_PORT=3306 \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=123456 \
-e MYSQL_DB=saltshaker_plus \
-e MYSQL_CHARSET=utf8 \
-e BROKER_HOST=192.168.10.100 \
-e BROKER_PORT=5672 \
-e BROKER_USER=saltshaker \
-e BROKER_PASSWORD=saltshaker \
-e [email protected] \
-e MAIL_PASSWORD=123345 \
-e SMTP_SERVER=smtp.saltshaker.com \
-e SMTP_PORT=25 \
yueyongyue/saltshaker_api:1.12.1
$ docker run -d -p 0.0.0.0:80:80 --name saltshaker_frontend \
-e DOMAIN=192.168.10.100 \
-e API_ADDR=192.168.10.100 \
-e Nginx_PROXY_PASS=192.168.10.100:9000 \
yueyongyue/saltshaker_frontend:1.12
SaltshakerPython 3clone$HOME
:
$ cd $HOME
$ git clone https://github.com/yueyongyue/saltshaker_api.git
:
$ pip install -r requirements.txt
FLASK_APPFlask CLI,app
$ export FLASK_APP=$Home/saltshaker_api/app.py
saltshaker.conf
$ mkdir /var/log/saltshaker_plus
$ flask init
Enter the initial administrators username [admin]: admin
Enter the initial Administrators password:
Repeat for confirmation:
Create user table is successful
Create role table is successful
Create acl table is successful
Create groups table is successful
Create product table is successful
Create audit_log table is successful
Create event table is successful
Create cmd_history table is successful
Create host table is successful
Create grains table is successful
Create period_task table is successful
Create period_result table is successful
Create period_audit table is successful
Create sls table is successful
Init role successful
Init role successful
Init role successful
Init role successful
Init role successful
Init user successful
Successful
saltshaker_plus.sql, admin admin
mysql> source $HOME/saltshaker_api/saltshaker_plus.sql;
```sh
$ python $Home/saltshaker_api/app.py
```
Gunicorn
$ cd $Home/saltshaker_api/ && gunicorn -c gun.py app:app
```sh
supervisord.conf directory
$ /usr/local/bin/supervisord -c $Home/saltshaker_api/supervisord.conf
```
Celery SupervisorCelery
$ cd $Home/saltshaker_api/ && celery -A app.celery worker --loglevel=info
https://github.com/yueyongyue/saltshaker_frontend
salt-api https://repo.saltstack.com/
sudo yum install salt-api
salt api pam
sudo useradd admin # admin$HOME/saltshaker_api/saltapi.confadmin
sudo passwd admin # admin
saltstack api saltshaker_api/saltapi.conf mastersalt-apiRestful(8000)
sudo cp $HOME/saltshaker_api/saltapi.conf /etc/salt/master.d/
sudo systemctl restart salt-master
sudo systemctl restart salt-api
GitLabFileServer: gitfs pygit2 GitPython git, pygit2 Saltstack statepillar SLSGitLabGitLab/etc/salt/master
fileserver_backend:
- roots
- git # gitrootsgit sls,sls()
gitfs_remotes:
- http://test.com.cn:9000/root/salt_sls.git: # GitLab https://<user>:<password>@<url>
- mountpoint: salt:// # file.managedGitLab https://docs.saltstack.com/en/latest/topics/tutorials/gitfs.html
gitfs_base: master # gitmaster
pillar_roots:
base:
- /srv/pillar
ext_pillar: # pillargitfs, top.sls
- git:
- http://test.com.cn:9000/root/salt_pillar.git
- mountpoint: salt://
:
master ()
loop_interval: 1 # 60s, ,gitlab,
SaltshakerWebhook, reactorevent, eventtaggitfs/updatefiilerserve
a. mastersaltstack reactor
reactor:
- 'salt/netapi/hook/gitfs/*':
- /srv/reactor/gitfs.sls
b. /srv/reactor/gitfs.sls
{% if 'gitfs/update' in tag %}
gitfs_update:
runner.fileserver.update
pillar_update:
runner.git_pillar.update
{% endif %}
Restful APIWiki: https://github.com/yueyongyue/saltshaker_api/wiki
http://project-help.cn/forum-4.htm
JobJobJob
0 | | | --------------------------------------------|-----------:|------------:|-----------: | | | | | |
0 | | | --------------------------------------------|-----------:|------------:|-----------: | | | | | |
Jobsaltstack eventsaltshakerevent
Jobpingtopkill
minion
minion key keyminion
minion Grains salt masterminionGrainsGrains
celery worker
keyAccepted
minion id`Accepted```minion``salt masteminion
gitfsstatetemplatepillarwebhookgitfs
shell
state
pillar(pillarsls,)
`` salt-master,master
salt-minionID
salt-master4
xxx/
xxx/
shellACL,rebootshutdown,ShellSLS
ACL
eventsaltstack eventcelery workerjob