#yyds干货盘点# saltshake安装配置

Posted qq5e3a878504161

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# saltshake安装配置相关的知识,希望对你有一定的参考价值。

后台:​​https://github.com/saltshaker-plus/saltshaker_api​

前端:​​https://github.com/saltshaker-plus/saltshaker_frontend​

要求:

Python >= 3.6

mysql >= 5.7.8 (支持Json的Mysql都可以)

Redis(无版本要求)

RabbitMQ (无版本要求)

Python 软件包见requirements.txt

Supervisor (4.0.0.dev0 版本 默认pip安装的不支持python3) 请使用此命令安装:pip install git+https://github.com/Supervisor/supervisor@master

GitLab >= 9.0

一.安装 saltshaker_api

1 安装

Redis
/opt/redis-3.2.8/src/redis-server /opt/redis-3.2.8/redis.conf

2 安装RabbitMQ

要先安装erlang,尽量用较新的版本,先加入yum源

[root@localhost yum.repos.d]# cat  rabbitmq_erlang.repo
[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/6/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/6/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[root@localhost yum.repos.d]# yum -y install erlang

如果内网较慢,可以在先下载,再复制到测试环境

[root@localhost yum.repos.d]# yum -y install erlang --downloadonly --downloaddir=./

安装RabbitMQ,先加入yum源

[root@localhost yum.repos.d]# cat  rabbitmq-server.repo
[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/6/
gpgcheck=0
repo_gpgcheck=0
enabled=1

[root@localhost yum.repos.d]# yum -y install rabbitmq

ui界面:​http://192.168.0.188:15672/#/​​ saltshaker saltshaker

4.安装mysql,Mysql >= 5.7.8 (支持Json的Mysql都可以) 同样的mysql也可以先下载,然后复制到测试网络

[root@vm-17-11-centos tmp]# yum -y install   mysql-community-client  mysql-community-devel  mysql-community-libs    mysql-community-libs-compat  mysql-community-server  mysql-community-common   --downloadonly --downloaddir=./

如果是升级的mysql,可能会有报错 Native table performance_schema.session_variables has the wrong structure

处理方法:在 /etc/my.cnf 加入一行,也可以先手工执行一次,再有报错再加入,网上说法不一

#mysql_upgrade -u root -p --force
root 1qaz2wsx

5 安装python3

wget  https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
cd /opt/Python-3.6.2
./configure --prefix=/opt/Python-3.6
make && make install
mv /bin/python /bin/python26
ln -s /opt/Python-3.6/bin/python3.6 /bin/python
mv /bin/pip /bin/pip2
ln -s /opt/Python-3.6/bin/pip3 /bin/pip
修改/usr/bin/yum和/usr/bin/urlgrabber-ext-down两个文件的头文件,即将第一行#!/usr/bin/python 改为 #!/usr/bin/python26

6安装 saltshaker_api

(1)下载安装:

$ cd /opt/
$ git clone https://github.com/yueyongyue/saltshaker_api.git
pip install -r requirements.txt

(2)导入FLASK_APP环境变量以便使用Flask CLI工具,路径为所部署的app的路径

$ export FLASK_APP=/opt/saltshaker_api/app.py

#这个文件可修改服务的启动端口,这里我写改为9001,不跟salt-master的9000冲突

(3)初始化数据库表及相关信息,键入超级管理员用户名和密码(数据库的配置见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;

(4)启动Flask App, 成功启动后会启动9000的端口

开发模式
$ python $Home/saltshaker_api/app.py

Gunicorn模式
$ cd $Home/saltshaker_api/ && gunicorn -c gun.py app:app

生产模式
supervisord.conf 里面的directory配置项修改为自己对应的代码路径
$ /usr/local/bin/supervisord -c $Home/saltshaker_api/supervisord.conf

(5)启动Celery (使用生产模式的忽略此步骤,因为在Supervisor里面已经启动Celery)

$ cd $Home/saltshaker_api/ && nohup celery -A app.celery worker --loglevel=info &

如有报错: [2019-07-03 15:25:09,953: ERROR/MainProcess] consumer: Cannot connect to amqp://saltshaker:**@10.132.97.115:5672//: Connection.open: (530) NOT_ALLOWED - access to vhost / refused for user saltshaker.

执行:

rabbitmqctl set_permissions -p / saltshaker "." "." ".*"

(6)配置Salt Master

yum install salt-api

创建salt api 认证用户名密码,使用pam认证方式

sudo useradd admin          # 必须是admin,如果是其他用户,需要对应修改$HOME/saltshaker_api/saltapi.conf里面的admin
sudo passwd admin # 记住admin的密码,稍后配置产品线的时候需要填写

配置saltstack api 拷贝 saltshaker_api/saltapi.conf 到 master配置文件下,开启salt-api的Restful接口(端口为8000)

sudo cp $HOME/saltshaker_api/saltapi.conf /etc/salt/master.d/
sudo systemctl restart salt-master
sudo systemctl restart salt-api

参考:​​https://github.com/saltshaker-plus/saltshaker_api​

二 安装saltshaker_frontend

要求 Vue.js > 2.0 要求 Node = 8.11.3 LTS

1.安装node.js

wget  https://nodejs.org/dist/latest-v8.x/node-v8.16.0-linux-x64.tar.xz
npm config set registry https://registry.npm.taobao.org
npm install
  1. 部署 0.118上用的是直接部署模式,配置文件 src/config/Global.vue 下serverSrc参数,对应自己的服务器域名或地址
nohup npm run dev
  1. 编译
    修改 src/config/Global.vue 下serverSrc参数,对应自己的服务器域名或地址
    修改 build/webpack.prod.config.js 下publicPath参数,对应自己的服务器域名或地址
    #npm run build
  2. 静态文件 修改 nginx.conf 下proxy_pass的参数, 对应自己的服务器域名或地址
    生成的静态文件在dist目录下面,可使用Nginx等Web服务器进行部署

参考:​​https://github.com/saltshaker-plus/saltshaker_frontend​

web界面: ​​http://192.168.0.188​​ admin admin

俩个启动命令:

cd  /opt/saltshaker_frontend/src && nohup npm run dev &
cd /opt/saltshaker_api && nohup python /opt/saltshaker_api/app.py &

如果有时候minion无法刷出信息,报401错误, 执行:pam_tally2 --user=admin --reset ,就可以恢复

/etc/pam.d/system-auth中配置凡是调用 system-auth 文件的服务,都会生效
#auth required pam_tally.so deny=5
vi /etc/pam.d/sshd
#auth required pam_tally.so deny=5 unlock_time=600 no_lock_time
pip install salt2018.3.0 -i https://pypi.doubanio.com/simple/
pip install salt2019.2.0 https://pypi.doubanio.com/simple/
salt-master -c /etc/salt -d
salt-minion -c /etc/salt -d
salt-api -c /etc/salt -d

测试

salt-api
curl http://192.168.0.188:8000/login -H "Accept: application/x-yaml" -d username=testuser -d password=testuser -d eauth=pam

以上是关于#yyds干货盘点# saltshake安装配置的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#tomcat配置优化

#yyds干货盘点#CentOS下Jenkins 配置

MYSQL事务超全知识总结#yyds干货盘点#

#yyds干货盘点# 超全面Git知识总结!

Flutter 专题02 图解 Mac 环境下安装配置环境 #yyds干货盘点#

常用Git命令总结#yyds干货盘点#