saltstack的安装配置

来源:互联网 发布:qq农场白萝卜数据 编辑:程序博客网 时间:2024/04/28 04:54


Salt 一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。

salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等.


系统环境:Centos6.6
IP      host
192.168.26.74 saltstack-master
192.168.26.75 saltstack-minion

一、Saltstack-master端

1.安装所需要的程序包
[root@zw_test_26_74 xebest]# rpm -ivh epel-release-latest-6.noarch.rpm

[root@zw_test_26_74 xebest]# yum install salt-master salt-minion salt-ssh -y

2.编辑配置文件
[root@zw_test_26_74 xebest]#vim /etc/salt/master

interface: 192.168.71.121  //绑定Master通信IP
auto_accept: True          //自动认证,避免手动运行salt-key来确认证书信任
file_roots:                //指定saltstack文件根目录位置
  base:
  - /srv/salt
·
3.编辑master配置文件
[root@zw_test_26_74 xebest]# vim /etc/salt/master
interface: 192.168.26.74
auto_accept: True         
file_roots:             
  base:
  - /srv/salt

 
 
二、Salt-minion端(agent端)

1.安装 minion端程序包
[root@zw_test_26_75 xebest]# rpm -ivh epel-release-latest-6.noarch.rpm

[root@zw_test_26_75 xebest]# yum install salt-minion -y


2.编辑minion端配置文件
root@zw_test_26_75 xebest]#  vim /etc/salt/minion
master: 192.168.26.74       #定Master主机IP地址
id: 192.168.26.75           #修改agent主机识别id,建议使用操作系统主机名来设置


3.启动salt服务
Maste和minion 端均采用debug启动
[root@zw_test_26_74 xebest]# salt-master -l debug
[root@zw_test_26_75 xebest]# salt-minion -l debug

 
4. 测试命令  
                                                                                                                                                                                                                                
[root@zw_test_26_74 xebest]# salt-ssh '*' test.ping   --ping 所有主机网络是否正常
zw_test_26_75:
    True                                                                 [root@zw_test_26_74 xebest]# salt-ssh '*' test.ping

                                                                
[root@zw_test_26_74 xebest]# salt '192.168.26.75' test.ping  --ping 192.168.26.75主机通信
192.168.26.75:
    True  
 
[root@zw_test_26_74 xebest]# salt-ssh 'zw_test_26_75' test.ping  --ping 192.168.26.75主机通信
zw_test_26_75:
    True
 

---------------- --------------------------------------------------------------
常用命令

以终端发送命令为例,salt可以直接让minion执行模块命令,也可以直接执行shell命令。 比如:
 

[root@zw_test_26_74 minion]#  salt '*' cmd.run "uptime"
192.168.26.75:
     11:45:44 up 12 min,  2 users,  load average: 0.06, 0.02, 0.00

salt-run manage.status   ##查看所有minion状态
salt-run manage.down     ##查看所有没在线minion
salt-run manged.up       ##查看所有在线minion

3.salt-key 密钥管理,通常在master端执行

salt-key -L              ##查看所有minion-key
salt-key -a <key-name>   ##接受某个minion-key
salt-key -d <key-name>   ##删除某个minion-key
salt-key -A              ##接受所有的minion-key
salt-key -D              ##删除所有的minion-key

4.salt-call 该命令通常在minion上执行,minion自己执行可执行模块,不是通过master下发job
salt-call [options] <function> [arguments]
salt-call test.ping           ##自己执行test.ping命令
salt-call cmd.run 'ifconfig'  ##自己执行cmd.run函数


5.salt-cp 分发文件到minion上,不支持目录分发,通常在master运行
salt-cp [options] '<target>' SOURCE DEST
[root@zw_test_26_74 xebest]# salt-cp '*' /xebest/bbb.txt /xebest
[root@zw_test_26_74 xebest]# salt-cp '192*' /xebest/ccc.txt /xebest


[root@zw_test_26_74 backup]# lsof -i:4505
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
salt-mast 11922 root   12u  IPv4  52713      0t0  TCP bogon:4505 (LISTEN)
salt-mast 11922 root   14u  IPv4  61054      0t0  TCP bogon:4505->bogon:42872 (ESTABLISHED)


[root@saltmaster01 file]# salt-ssh '*' state.highstate


[root@saltmaster01 file]# salt '*' state.highstate
 
 
-------------------------------------------------------------------------------------------------
这里是saltstack和rsync配合使用

rsync -av --password-file=/etc/rsyncd.secrets /xebest/release test1@192.168.26.74::xebest 

rsync -av --password-file=/etc/rsyncd.secretstest1@192.168.26.74::xebest /xebest/release/test


74 是备份端    75   57  是发布端

1. 把 75 或  57 的项目 备份到  74端

salt -L '192.168.26.75' cmd.run 'rsync -av --password-file=/etc/test1.secrets /xebest/release/ test1@192.168.26.74::xebest/`date +%Y%m%d%H%M%S`'

2. 查看 74 /xebest 下面备份的文件,记住用122的密码文件

salt -L '192.168.26.75' cmd.run 'rsync  --list-only  --password-file=/etc/rsyncd.secretstest1@192.168.26.74::xebest'

3.把74 [update] /opt/push_data_ftp/ 下的文件复制到   75 和 234 , 发布 /opt/push_data_ftp/ 下 xe-cy-xebest的目录

salt -L '192.168.26.75,192.168.26.57' cmd.run 'rsync -av --password-file=/etc/test1.secrets test1@192.168.26.74::update  /xebest/release/'

 
 
客户端执行: 查看74机器上 xebest目录下的所有文件

rsync  --list-only  --password-file=/etc/rsyncd.secretstest1@192.168.26.74::xebest

salt -L '192.168.26.75' cmd.run 'rsync  --list-only  --password-file=/etc/rsyncd.secretstest1@192.168.26.74::xebest'


salt -L '192.168.26.75' cmd.run 'ps -ef|grep java'


0 0
原创粉丝点击