Saltstack安装步骤

第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://xxx.64.117.90/saltstack/redhat5

   gpgcheck=0

   enable=1

        注:此为redhat5的源url。不同redhat版本url不一样,具体看源位置,本源库为电信yum库,是提前将所有salt依赖全部打入到yum库中才能使用。

redhat5:http://xxx.64.117.90/saltstack/redhat5

redhat6:http://xxx.64.117.90/saltstack/redhat6

redhat7:http://xxx.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: xxx.64.206.49

注:master前不能有空格,冒号后面需要有一个空格。

2、minion配置

       进入/etc/salt目录,vim打开minion文件。

1) 找到并配置master地址,在master后面配置master所在的IP,如:

master: xxx.64.206.49

注:master前不能有空格,冒号后面需要有一个空格。

2) 找到并配置id,在id后面配置当前minion机器的名称(可填写本机ip),如:

id: xxx.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'

 

猜你喜欢

转载自blog.csdn.net/mengxin520520/article/details/82746560
今日推荐