ERP一部推送 | Linux-Saltstack安装及配置(基础篇)
Posted 瑞友科技中国事业部
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ERP一部推送 | Linux-Saltstack安装及配置(基础篇)相关的知识,希望对你有一定的参考价值。
欢迎关注,更多精彩等着你!
所属部门:ERP一部
目前在甜橙金融天翼项目组担任运维架构师,致力于高效CI,环境架构优化,投身于DevOps,自动化运维领域多年,具有丰富的一线经验,哦,对了,相衡在项目组还担任讲师,连续几个季度都是优秀讲师呢~
感谢相衡将为我们带来关于Linux-Saltstack安装及配置的分享,欢迎小伙伴们一起学习和交流哦~
一、环境准备
1、redhat6.7 2台(master:172.10.25.15; minion : 172.10.25.12 )
2、python版本 2.7.14
3、anaconda5.1 下载路径:https://www.anaconda.com/download/#linux
二、SaltStack下载安装
因大部分公司对内部网络有限制,不允许访问外部网站,特准备2种安装方式,离线安装及在线安装
1、离线安装
离线安装salt参考文档:https://blog.csdn.net/u014703013/article/details/81288969
2、在线安装
运行以下命令以安装SaltStack存储库和密钥:
sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-2018.3-1.el6.noarch.rpm安装salt主或其他salt组分:
sudo yum clean expire-cache
sudo yum install salt-master -y
sudo yum install salt-minion -y
sudo yum install salt-ssh -y
sudo yum install salt-syndic -y
sudo yum install salt-api -y
sudo yum install salt-cloud -y
三、 salt-master配置
更改配置 /etc/salt/master
interface: 172.10.25.15(冒号后一定要空格)
user: root (用户运行Salt进程)
conf_file: /etc/salt/master (主配置文件路径)
pki_dir: /etc/salt/pki/master (存储pki身份验证密钥的目录 默认即可)
cachedir: /data/cache/salt/master (缓存路径指定空间较大目录下 默认即可)
keep_jobs: 4 (设置保留旧作业信息的小时数。请注意,设置此选项可0禁用缓存清理程序,如果mimion节点超过1000建议此配置设置小)
gather_job_timeout: 10 (客户端请求有关正在运行的作业的信息时等待的秒数。)
job_cache: True (缓存文件到本地)
worker_threads: 25 (开启的线程数,根据主机资源而定)
auto_accept: Flase (此设置是否自动接受来自minion的所有传入公钥)
hash_type: sha256 (hash_type是在主服务器上发现文件的哈希时使用的哈希。默认值为sha256,但也支持md5,sha1,sha224,sha384和sha512)
log_file: /data/log/salt/master
key_logfile: /data/log/salt/key
syndic_master: 172.10.25.12
syndic_master_port: 4506
syndic_log_file: /data/log/salt/syndic
syndic_wait: 15
配置开机启动:/etc/init.d/salt-maser master
chkconfig salt-master on
四、 salt-minion配置
更改配置 /etc/salt/minion (注意格式)
master:
master_shuffle: True (设置启动时随机选择一台 目前我们master是一台)
master_type: failover
master_alive_interval: 10 (配置minion将以秒为单位验证当前主设备是否存活并响应的频率。如果minion发现现有的master已经死了,它将尝试与列表中的下一个master建立连接 目前我们master是一台)
retry_dns: 0 (在尝试解析主主机名之前等待的秒数)
backup_mode: minion
auth_tries: 2 (尝试向主服务器进行身份验证时可接受的连续SaltReqTimeoutErrors的数量)
auth_safemode: True (如果在ping_interval期间由于SaltReqTimeoutError导致身份验证失败,则此设置(如果设置为True)将导致子minion进程重新启动)
log_level_logfile: debug (定义日志级别)
return: redis (执行结果返回类型)
redis.db: '1' (redis db)
redis.host: '172.10.25.16' (redis服务ip)
redis.port: 6379 (redis服务端口)
配置开机启动:chkconfig salt-minion on
重启:service salt-minion restart
五、salt-api配置
5.1 安装salt api
yum -y install pyOpenSSL
5.2 生成自签证书
salt-call --local tls.create_self_signed_cert
local:
Created Private Key: "/etc/pki/tls/certs/localhost.key." Created Certificate: "/etc/pki/tls/certs/localhost.crt."
问题1:'tls' __virtual__ returned False: PyOpenSSL version 0.10 or later must be installed before this module can be used.
发现python版本不一致
[root@SX-25-15 soft]# python
Python 2.7.14 |Anaconda, Inc.| (default, Dec 7 2017, 17:05:42)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
/usr/bin/python2.7
Python 2.7.13 (default, Mar 30 2018, 15:31:59)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
salt-call 查看启动文件读取/usr/bin/python2.7文件
解决:
替换/usr/bin/python2.7文件
rm -r usr/bin/python2.7
ln -s /tools/anaconda2/bin/python2.7 /usr/bin/python2.7
问题2:[root@SX-25-15 tools]# salt-call --local tls.create_self_signed_cert
Traceback (most recent call last):
File "/usr/bin/salt-call", line 7, in <module>
from salt.scripts import salt_call
ImportError: No module named salt.scripts
重装解决问题:
pip install salt
pip install cherrypy
5.3 配置
5.3.1 配置api
rest_cherrypy:
host: 172.17.25.15
port: 8000
ssl_crt: /etc/pki/tls/certs/localhost.crt
ssl_key: /etc/pki/tls/certs/localhost.key
5.3.2 配置auth
配置 /etc/salt/master.d/auth.conf文件
external_auth:
pam:
saltapi: #用户
- .* #该配置给与saltapi所有模块使用权限,处于安全考虑一般给与特定模块使用权限
- '@wheel'
- '@runner'
- '@jobs'
5.3.3 创建用户,saltapi认证使用
useradd -M -s /sbin/nologin saltapi
echo '123456' | passwd saltapi --stdin
/etc/init.d/salt-api restart
5.3.4 验证login登陆,获取token字符串
curl -sSk https://172.10.25.15:8000/login \
-H 'Accept: application/x-yaml' \
-d username='saltapi' \
-d password='saltapi' \
-d eauth='pam'
return:
- eauth: pam
expire: 1527622175.307136
perms:
- .*
- '@wheel'
- '@runner'
- '@jobs'
start: 1527578975.307132
token: fcd36c01cd4fbc6417b29b728a482b2b312dfd5f
user: saltapi
5.3.5 通过api执行test.ping测试连通性
curl -sSk https://172.10.25.15:8000 \
-H 'Accept: application/x-yaml' \
-H 'X-Auth-Token:22e97bd3a4e62e374e23216532c17a9db8fca19c' \
-d client=local \
-d tgt='*' \
-d fun=test.ping
return:
- SX-25-12: true
5.3.6 minion端执行具体命令
curl -sSk https://172.10.25.15:8000 -H 'Accept: application/x-yaml' -H "X-Auth-Token:e1fc4961f42bf51effba5b2a1d14a96540fdc23c" -d client=local -d tgt="SX-25-12" -d fun='cmd.run' -d arg="date"
return:
- SX-25-12: Tue May 29 17:51:10 CST 2018
长按扫码
以上是关于ERP一部推送 | Linux-Saltstack安装及配置(基础篇)的主要内容,如果未能解决你的问题,请参考以下文章