上一篇,記錄了saltstack的安裝與配置和簡單的使用,但是你會發現基本所有操作,都需要登入到master機上進行指令行操作,雖然指令行才是最強大的,但是對于新手和入門時的學習使用和管理非常不友好。
然而salt已經為我們想到了,下面将為saltstack配置一個web界面,通過web界面來實作一些管理功能,由于saltstack官方本身時沒有web界面的,但是官方通過salt-api來實作了接口,用于廣大網友自行設計界面,這裡記錄下在git-hub上較常見的一個web界面——saltshaker。
系統為centos7.2,python版本為2.7
一。安裝
## 安裝api接口
$ yum install salt-api -y
## 添加使用者,使用者api認證
$ useradd -M Amos
## 添加api的配置檔案,同來配置api接口服務的端口和一些設定
$ vim /etc/salt/master.d/api.conf
--------------------------------------------------------------------------------------------------
rest_cherrypy:
port: 8000
debug: True
#ssl_crt: /etc/pki/tls/certs/localhost.crt
#ssl_key: /etc/pki/tls/certs/localhost.key
disable_ssl: true
--------------------------------------------------------------------------------------------------
## 添加eauth.conf認證配置檔案
$ vim /etc/salt/master.d/eauth.conf
--------------------------------------------------------------------------------------------------
external_auth:
pam:
Amos:
- .*
- '@wheel'
- '@runner'
--------------------------------------------------------------------------------------------------
Amos登陸使用者名,下面為權限設定,可以根據使用者自定義不同的權限。上述為全部權限
## 啟動salt-api服務
$ systemctl start salt-api
OK,到此,salt-api服務啟動,可以檢視下端口,是否已經監聽8000端口。
下面進行web界面saltshaker的安裝與配置。centos7自帶的python為2.7版本。
## 先安裝python的pip包管理工具,在安裝所欲的python庫
$ yum install python-pip
$ pip install Django==1.8.4 (這裡一定要安裝指定的1.8。4版本,如果安裝最新版1.10以後,代碼的寫法上會報錯)
$ pip install django-crontab
$ pip install django-celery
$ pip install celery
$ pip install uwsgi
$ pip install django-uwsgi
$ pip install python-devel
## 安裝rabbitmq
$ yum install rabbitmq-server
## 打開rabbitmq的管理插件
$ rabbitmq-plugins enable rabbitmq_management
## 建立存放日志的檔案夾
$ mkdir -pv /var/log/saltshaker/
## 下載下傳代碼到本地,可以選擇用git clone下載下傳,也可以直接下載下傳zip包解壓,這裡用git
$ git clone https://github.com/yueyongyue/saltshaker.git
## 初始化資料庫,這裡資料庫使用mysql5.6,請提前準備,初始化腳本在下載下傳的項目裡:saltshaker-init.sql.txt
$ mysql -u root -p
mysql> create database saltshaker;
mysql> source {project_dir}/saltshaker-init.sql.txt
mysql> grant all privileges on saltshaker.* to 'saltshaker'@'%' identified by 'saltshaker';
mysql> grant all privileges on saltshaker.* to 'saltshaker'@'localhost' identified by 'saltshaker';
mysql> flush privileges;
mysql>exit;
## 進入項目,修改配置檔案的資料庫連接配接和salt-api連接配接,rabbitmq+celery配置
$ vim {project_dir}/saltshaker/settings.py
------------------------------------------------------------------------------------------------------
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'saltshaker', # Or path to database file if using sqlite3.
'USER': 'saltshaker', # Not used with sqlite3.
'PASSWORD': 'saltshaker', # Not used with sqlite3.
'HOST': '192.168.9.92', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '3306', # Set to empty string for default. Not used with sqlite3.
}
}
# SaltStack API
SALT_API_URL = 'http://127.0.0.1:8000'
SALT_API_USER = 'user'
SALT_API_PASSWD = 'passwd'
# celery + rabbitmq
platforms.C_FORCE_ROOT = True # Running a worker with superuser privileges
djcelery.setup_loader()
BROKER_HOST = "127.0.0.1"
BROKER_PORT = 5672
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"
------------------------------------------------------------------------------------------------------
## 背景啟動celery worker
$ python manage.py celery worker --loglevel=info -c 5 &>/dev/null
## 添加計劃任務用于擷取queue隊列數
$ python manage.py crontab add
## 背景啟動服務,
$ python manage.py runserver 0.0.0.0:9000 &>/dev/null &
OK,到此為止,saltshaker安裝完成,現在用浏覽器通路 http://localhost:9000 則會出現saltshaker的登陸位址,初始使用者和密碼為:
user:admin
password:admin
進去後,可自行修改密碼,添加使用者等。裡面的功能雖并不是完全齊全,但也很不錯了,有興趣的同學,完全可以自行修改代碼,自定義頁面和功能。