天天看點

centos7.2 saltstack配置web界面saltshaker

上一篇,記錄了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

進去後,可自行修改密碼,添加使用者等。裡面的功能雖并不是完全齊全,但也很不錯了,有興趣的同學,完全可以自行修改代碼,自定義頁面和功能。

繼續閱讀