并发 == 效率
差异性

4505  4506 master        队列  zeromq,raet

salt-call --master=10.21.40.23 --id="host1" state.highstate

yum安装
https://repo.saltstack.com/#rhel  salt官方源,版本更新
http://repo.saltstack.com/yum/redhat
[saltstack-repo]
name=SaltStack repo for RHEL/CentOS $releasever
baseurl=http://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
enabled=1
gpgcheck=1
gpgkey=http://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub

yum install epel-release 
yum install salt-master
master端
salt-2014.1.10-4.el6.noarch
salt-master-2014.1.10-4.el6.noarch
salt-minion-2014.1.10-4.el6.noarch(optional)

minion端(客户端)
yum install salt-minion
salt-2014.1.10-4.el6.noarch
salt-minion-2014.1.10-4.el6.noarch

防火墙添加
iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT

python安装
yum install swig
yum install gcc gcc-c++
yum install openssl-devel
yum install libyaml-devel -y

pip install M2Crypto
pip install pyzmq
pip uninstall PyCrypto
pip uninstall salt Jinja2 msgpack-python PyYAML MarkupSafe
pip install PyCrypto
cd /usr/lib/python2.6/site-packages/
rm -fr salt salt-2014.1.4-py2.6.egg-info/
pip install salt

http://docs.saltstack.com/en/latest/



http://msgpack.org/
zeromq
使用了消息队列
信息使用msgpack进行封装

选择salt的理由

1 使用消息队列(异步) zeromq
2 消息封装的是2机制 msgpack封装
3 安全使用aes算法
4 服务器开两个端口4505 4506
5 理念是block(适合拼积木,实现业务流)

配置
在master上编辑vim /etc/hosts
master_ip  master_name
minion_ip  minion_name
然后把这份文件同步到所有的主机上


修改文件描述符
修改sk_buffer
echo 16777216 > /proc/sys/net/core/rmem_max
echo 16777216 > /proc/sys/net/core/wmem_max
echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_rmem
echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_wmem

 minion  vim /etc/salt/minion
 id: node2 (minion的名字)            冒号后有空格
master: 10.255.254.221(master的ip)
/etc/init.d/salt-minion start
/etc/init.d/salt-master start

查看你的minion是否发送了加入请求
[root@node1 salt]# salt-key -L
                salt-key –A  接受所有minion   -a minion名字   接受指定的minion
测试
salt '*' test.ping
   目标 模块.函数 函数的参数

如何定义目标
shell下的通配符
*
"*.example.com"
"web?.example.com"
"web[1-5].example.com"
regex  正则表达式
salt -E 'web1-(prod|devel).example.com'
list    列表的方式
salt -L 'web1,web2,web3'
grains(数据存放在minion上,默认就有)
[root@node1 salt]# salt 'node1' grains.ls
salt -G 'os:CentOS' test.ping
定义主机组
[root@node1 salt]# vim /etc/salt/master
salt -N 组名 test.ping
批次执行-b (依次执行)

salt '*' sys.doc
如何使用相对应的模块和函数
/usr/lib/python2.6/site-packages/salt/modules
test.ping (是在minion上执行)

http://docs.saltstack.com/en/latest/ref/modules/all/index.html
[root@node1 modules]# salt 'node3' cmd.run 'uptime'
salt中文件的根目录
file_roots:
  base:
    - /srv/salt
salt 'node2' cmd.script salt://test.sh
脚本缓存的路径
/var/cache/salt/minion/files/base

results matching ""

    No results matching ""