设为首页 收藏本站
查看: 1839|回复: 0

[经验分享] saltstack安装步骤

[复制链接]

尚未签到

发表于 2018-1-3 16:32:32 | 显示全部楼层 |阅读模式
第1章 Saltstack安装
1.1 环境准备
1.1.1 创建用户(root)(不需要该步骤)
  192.168.80.151(master)/192.168.80.154(client)

  创建idc-salt用户密码为idc-salt2016开始准备用普通用户安装saltstack,后来发现不行,需要root用户或者sudo权限安装
1.1.2 准备安装包及所需文件
  http://mirrors.sohu.com/fedora-epel/6/x86_64/为下载rpm包地址
1.1.3 关闭防火墙
  1、 查看服务器防火墙状态,命令: service iptables status

  2、 如果看到firewall is not running说明是关闭状态;如果是打开状态,可以直接运行命令:  service iptables stop,关闭防火墙;

  1.1.4 yum安装需要联网
  vi /etc/ resolv.conf  ,配置文件增加nameserver 114.114.114.114

  1.2 软件安装
1.2.1 安装epel(root用户)
  1、上传epel-release-6-8.noarch.rpm安装文件到目录  /home/idc-salt/tools

  2、执行命令rpm -ivh epel-release-6-8.noarch.rpm

1.2.2 升级python(不需要该步骤)
  https://www.python.org/ftp/python/ 下载升级包
  http://www.cnblogs.com/idotest/p/5442173.html 参考地址
  ln -s /usr/local/python3/bin/python3.4 /usr/bin/python  修改系统的py版本

  升级成3.4版本之后,yum不能使用,所以151和154机器还是使用2.6的版本
1.2.3 安装salt-master(root用户)
  具体的安装过程参考下面的网站
  https://repo.saltstack.com/yum/redhat/6.4/x86_64/latest/
  http://mirrors.aliyun.com/centos/6/os/x86_64/Packages/
  http://yum.baseurl.org/download/
  注意
  1rpm安装过程比较复杂因为各种依赖执行rpm –ivh salt-2016.3.4-1.el6.noarch.rpm少什么包就按提示一个个安装(差不多要花一天时间才能搞好),如果是几个rpm互相依赖则可以在rpm –ivh 后面把相关的rpm都带上,这样就能同时安装,比如:rpm –ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm  yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm yum-3.2.29-73.el6.centos.noarch.rpm 同时安装yum相关的包
  2rpm -ivh --force python-crypto-2.6.1-2.el6.x86_64.rpm   版本冲突强制安装
  3rpm -aq|grep yum|xargs rpm -e --nodeps  删除yum的rpm安装
  4Rpm方式安装成功之后手动上传saltsalt-minion相关文件到/usr/bin目录下然后执行chmod +x 文件。saltsalt-minion相关文件在yum安装的机器上找
  5154是rpm方式安装,151是yum方式安装
  https://repo.saltstack.com/#rhel yum方式的安装,直接参考官网,几步就搞定了:
  1、yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el7.noarch.rpm
  2、 yum clean expire-cache
  3、yum install salt-master 或者   yum install salt-minion
1.3 yum方式安装salt
  yum安装首先要配置好yum源,本次安装为redhad5下的salt-minion,master安装也一样,只是最后一个是安装minion包,一个是安装master。redhat6和redhat7流程和此过程一样,具体步骤如下。
1.3.1 配置yum源
  进入/etc/yum.repo.d目录,在该目录下创建文件salt-2016.11.repo,并将填写源信息,内容如下:
[salt-2016.11]

  name=saltstack
  baseurl=http://134.64.117.90/saltstack/redhat5
  gpgcheck=0
  enable=1
  注:此为redhat5的源url。不同redhat版本url不一样,具体看源位置,本源库为电信yum库,是提前将所有salt依赖全部打入到yum库中才能使用。
  redhat5:http://134.64.117.90/saltstack/redhat5
  redhat6:http://134.64.117.90/saltstack/redhat6
  redhat7:http://134.64.117.90/saltstack/redhat7
1.3.2 安装salt-repo
  1) 查看yum库有无该包,执行指令,根据执行结果找到该包名称(salt-repo.noarch),指令如下:yum list |grep -i salt-repo
  2) salt-repo安装:yum install salt-repo.noarch
1.3.3 重新配置yum源
  此步骤为重复1操作,因为salt-repo安装后,会在/etc/yum.repo.d下生成salt-2016.11.repo同名文件,将其覆盖,因此需要对其内容进行修改,操作同步骤1。
1.3.4 安装master/minion

  • master
  1) 查看yum库有无该包,执行指令,根据执行结果找到该包名称salt-master.noarch,指令如下: yum list |grep -i salt-master
  2) salt-master安装:yum install salt-master.noarch
  该步骤会看到,有很多master的依赖包,根据界面提示信息选择确定下载并安装依赖,等待下载并安装完成。

  • minion
  1) 查看yum库有无该包,执行指令,根据执行结果找到该包名称salt-minion.noarch(salt-master.noarch),指令如下: yum list |grep -i salt-minion
  2) salt-minion安装:yum install salt-minion.noarch
  该步骤会看到,有很多minion的依赖包,根据界面提示信息选择确定下载并安装依赖,等待下载并安装完成
1.3.5 master/minion配置
  1、master配置
  进入/etc/salt目录,vim打开minion文件。
  1) 找到并配置master地址,在master后面配置master所在的IP,修改保存退出,如:
  master: 134.64.206.49
  注:master前不能有空格,冒号后面需要有一个空格。
  2、minion配置
  进入/etc/salt目录,vim打开minion文件。
  1) 找到并配置master地址,在master后面配置master所在的IP,如:
  master: 134.64.206.49
  注:master前不能有空格,冒号后面需要有一个空格。
  2) 找到并配置id,在id后面配置当前minion机器的名称(可填写本机ip),如:
  id: 134.64.206.40
  注:id前不能有空格,冒号后面需要有一个空格。
  3)保存退出
1.3.6 启动master/minion
  1)启动master
  输入指令:service salt-master start
  2)启动minion
  输入指令:service salt-minion start
  3)注意事项
  不同redhat版本启动命令不一样,此为redhat5/6适用命令),界面会显示salt启动成功。如有失败,则查看启动错误信息,一般如果master/minion安装没问题,则都是master/minion文件配置master或id不规范导致。
1.4 salt手动安装rpm
1.4.1 redhat6
  1、上传redhat6系统的salt所有rpm包
  2、安装salt-repo包
  rpm -ivh salt-repo-2016.11-1.el6.noarch.rpm
  3、安装依赖
  rpm -ivh libyaml-0.1.3-4.el6.x86_64.rpm
  rpm -ivh PyYAML-3.11-1.el6.x86_64.rpm
  rpm -ivh python-crypto-2.6.1-2.el6.x86_64.rpm
  rpm -ivh python-futures-3.0.3-1.el6.noarch.rpm
  rpm -ivh python-msgpack-0.4.6-1.el6.x86_64.rpm
  rpm -ivh python-chardet-2.2.1-1.el6.noarch.rpm
  rpm -ivh python-ordereddict-1.1-2.el6.noarch.rpm
  rpm -ivh python-six-1.9.0-2.el6.noarch.rpm
  rpm -ivh python-urllib3-1.10.2-1.el6.noarch.rpm
  rpm -ivh python-requests-2.6.0-3.el6.noarch.rpm
  rpm -ivh python-jinja2-2.8.1-1.el6.noarch.rpm
  rpm -ivh python-tornado-4.2.1-1.el6.x86_64.rpm
  rpm -ivh zeromq-4.0.5-4.el6.x86_64.rpm
  rpm -ivh python-zmq-14.5.0-2.el6.x86_64.rpm
  4、安装salt
  rpm -ivh salt-2016.11.3-1.el6.noarch.rpm
  5、安装salt-master/salt-minion
  master:rpm -ivh salt-master-2016.11.3-1.el6.noarch.rpm
  minion:rpm -ivh salt-minion-2016.11.3-1.el6.noarch.rpm
  redhat6启动命令:service salt-minion start
  停止命令:service salt-minion stop
  重启命令:service salt-minion restart
1.4.2 redhat7
  1、上传redhat7系统的salt所有rpm包
  2、安装salt-repo包
  rpm -ivh salt-2016.11.3-1.el7.noarch.rpm
  3、安装依赖
  rpm -ivh libsodium-1.0.5-1.el7.x86_64.rpm
  rpm -ivh libyaml-0.1.4-11.el7_0.x86_64.rpm
  rpm -ivh PyYAML-3.11-1.el7.x86_64.rpm
  rpm -ivh base/python-jinja2-2.7.2-2.el7.noarch.rpm
  rpm -ivh base/python-babel-0.9.6-8.el7.noarch.rpm
  rpm -ivh base/python-markupsafe-0.11-10.el7.x86_64.rpm
  rpm -ivh python-futures-3.0.3-1.el7.noarch.rpm
  rpm -ivh python-crypto-2.6.1-2.el7.x86_64.rpm
  rpm -ivh python-msgpack-0.4.6-1.el7.x86_64.rpm
  rpm -ivh python-chardet-2.2.1-1.el7.noarch.rpm
  rpm -ivh python-tornado-4.2.1-1.el7.x86_64.rpm
  rpm -ivh openpgm-5.2.122-2.el7.x86_64.rpm
  rpm -ivh zeromq-4.1.4-5.el7.x86_64.rpm
  rpm -ivh python-zmq-15.3.0-2.el7.x86_64.rpm
  4、安装salt
  rpm -ivh salt-2016.11.3-1.el7.noarch.rpm
  5、安装salt-master/salt-minion
  master:rpm -ivh salt-master-2016.11.3-1.el7.noarch.rpm
  minion:rpm -ivh salt-minion-2016.11.3-1.el7.noarch.rpm
  redhat7启动命令:systemctl start salt-minion
  停止命令:systemctl stop salt-minion
  重启命令:systemctl restart salt-minion
1.4.3 注意事项
  salt针对不同系统版本安装不同的salt包,而执行操控脚本也需要考虑,因linux5/6与linux7中的一些命令不一致,因此在对脚本文件进行批量下发时,需要注意下发主机的操作系统版本。
  一般机器环境都没有开发外网访问,很多企业都有自己的yum库,注意如果是yum和rpm2种混合安装模式(一般不会这么干),则切记,安装salt-repo后,检查/etc/yum.repo.d目录下的相关.repo是否被修改,如被改动,改回成之前配置的就好了,不然会出现yum找不到包。
1.5 配置启停
1.5.1 查看版本
  salt --versions-report
1.1.1 修改服务端配置
  修改master的配置,设置master的ip
  vi /etc/salt/master
  interface: 192.168.80.151
1.1.2 修改客户端的配置
  Vi /etc/salt/minion
  master: 192.168.80.151
  id: 192.168.80.154
1.1.3 服务                       端启停
  Master启动
  service  salt-master start(service salt-master stop 是停止)
1.1.4 客户端启停
  service salt-minion start  启动客户端(service salt-minion stop 是停止)
  测试的时候,151启动报错是因为python-crypto冲突了
  解决方法是:
  rpm -qa |grep python-crypto 查询所有python-crypto版本
  rpm -aq|grep python-crypto-2.0.1-22.el6.x86_64 |xargs rpm -e –nodeps  删除低版本的python-crypto
1.1.5 密钥认证
  服务端执行salt-key –L,此时154客户端还未加入到master认证中
  执行命令salt-key –A,接收所有请求
  salt-key –a 接受某个客户端请求
  salt-key –A 接受所有客户端请求
  salt-key –d 删除单个客户端
  salt-key –D 删除所有客户端
1.6 测试验证
  测试连通性:salt \* test.ping
  远程执行命令:salt \* cmd.run 'ls /root'
第2章 Salt-api安装
2.1 安装cherrypy
  sudo easy_install cherrypy  查看合适的cherrypy版本
  http://docs.cherrypy.org/en/latest/install.html
  下载3.2.2版本的cherrypy,然后安装:
  tar -xzvf cherrypy-cherrypy-3.2.2.tar.gz  解压
  cd cherrypy-cherrypy-3.2.2
  python setup.py install
2.2 安装salt-api
  参考网站:
  http://blog.csdn.net/hnhuangyiyang/article/details/50667000
  http://iceyao.blog.51cto.com/9426658/1627908
  salt-api所有操作均在master端
  yum -y install salt-api pyOpenSSL


  chkconfig salt-api on

2.3 创建目录master.d
  sed -i '/#default_include/s/#default/default/g' /etc/salt/master
  mkdir /etc/salt/master.d

  该目录在/etc/salt/master文件中会引用

2.4 生成自签名证书
  cd /etc/pki/tls/certs/
  make testcert
   密码自己设置我设置的是 idcsalt

  如果make testcert出现错误,删除/etc/pki/tls/private/localhost.key文件,然后再make testcert。(密码不能有“-“字符)
  cd /etc/pki/tls/private
  openssl rsa -in localhost.key -out localhost_nopass.key

  2.5 创建用户
  useradd -M -s /sbin/nologin saltapi
  echo "saltapi2016" | passwd saltapi --stdin

  2.6 新增配置文件eauth.conf(saltapi为上一步创建的用户)
  cd /etc/salt/master.d/
  文件内容为:
  external_auth:
  pam:
  saltapi:
  - .*
  - '@wheel'
  - '@runner'

  2.7 新增配置文件api.conf
  cd /etc/salt/master.d/
  文件内容为:
  rest_cherrypy:
  port: 8000
  ssl_crt: /etc/pki/tls/certs/localhost.crt     (2.4章节生成的文件)
  ssl_key: /etc/pki/tls/private/localhost_nopass.key  (2.4章节生成的文件)

  2.8 启动salt-api
  service salt-master restart
  service salt-api restart

  启动完之后查看8000(端口在2.7章节中指定)端口是否在监听:netstat -anop|grep 8000


2.9 测试salt-api
  curl -k https://192.168.80.151:8000/login -H "Accept: application/x-yaml"  -d username='saltapi' -d password='saltapi2016'  -d eauth='pam'
  上面的命令用来获取token(salt-api重启一次,tocken就会发生变化

  curl -k https://192.168.80.151:8000/ -H "Accept: application/x-yaml" -H "X-Auth-Token: 8ef747d5ea27b6a0ea6afe6907d7f68d8e3e630d" -d client='local' -d tgt='*' -d fun='test.ping'
  相当于在salt-master本地执行salt \* test.ping

  curl -k https://192.168.80.151:8000/ -H "Accept: application/x-yaml" -H "X-Auth-Token: 8ef747d5ea27b6a0ea6afe6907d7f68d8e3e630d" -d client='local' -d tgt='*' -d fun='test.echo' -d arg='hello world'
  相当于在salt-master本地执行salt \* test.echo 'hello world'

  curl -k https://192.168.80.151:8000/ -H "Accept: application/x-yaml" -H "X-Auth-Token: 8ef747d5ea27b6a0ea6afe6907d7f68d8e3e630d" -d client='local' -d tgt='*' -d fun='cmd.run' -d arg='ls /root'
  相当于在salt-master本地执行salt \* cmd.run 'ls /root'

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431219-1-1.html 上篇帖子: SaltStack安装及配置 下篇帖子: 扩展saltstack组件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表