Linux-Saltstack安装及配置(基础篇)

Posted 甜橙技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-Saltstack安装及配置(基础篇)相关的知识,希望对你有一定的参考价值。

1

环境准备

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


2

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


3

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


4

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 restar


5

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


---------------------

来源:CSDN 

原文:https://blog.csdn.net/u014703013/article/details/80504752?utm_source=copy 

版权声明:本文为博主原创文章,转载请附上博文链接!



 • end • 

编辑 | 濮筱菁

扫一扫关注哦~


以上是关于Linux-Saltstack安装及配置(基础篇)的主要内容,如果未能解决你的问题,请参考以下文章

puppet基础篇(练习篇)

从无到有,使用yarn开发react项目(配置及开发基础篇)(小白向)

Ansible系列-基础篇-Ansible 的安装、配置和基本使用

[Python人工智能] 三十九.VS Code配置Python编程和Keras环境及手写数字识别(基础篇)

[Python人工智能] 三十九.VS Code配置Python编程和Keras环境及手写数字识别(基础篇)

服务器架构及实战(架构篇)- PHP建站