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安装及配置(基础篇)的主要内容,如果未能解决你的问题,请参考以下文章

[初级职称]ERP向左,会计向右

企业成功实施ERP系统需注意哪些事项?

浅析ERP系统--营销用服

在 Open ERP 中使用 Odoo 的库存管理

PCB 后台自动系统集成与邮件推送实现

如何推送 ViewController 并使第一个控制器部分可见?