saltstack布署实践 【安装】

时间:2022-06-14 15:21:12

借用链接http://www.cnblogs.com/liuyansheng/p/6094122.html的安装方式,我再同步一下其它操作系统的安装方式,由原Docker官网拷贝

Ubuntu1404
- 添加 SaltStack repository key:
wget -O - https://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest/SALTSTACK-GPG-KEY.pub | apt-key add -
- 保存和新增一个apt源:
touch /etc/apt/sources.list.d/saltstack.list
vi /etc/apt/sources.list.d/saltstack.list
 deb http://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest trusty main
-执行更新
sudo apt-get update
- 安装 salt-minion, salt-master 或者其它组件:
  sudo apt-get install salt-master
   sudo apt-get install salt-minion
   sudo apt-get install salt-ssh
   sudo apt-get install salt-syndic
   sudo apt-get install salt-cloud
   sudo apt-get install salt-api
- 如升级了,则重启:
 service salt-minion restart
添加解析
vi /etc/hosts
添加
127.0.0.1       salt
CentOS7
- 添加Repo的Yum源:

sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el7.noarch.rpm
- 更新缓存
sudo yum clean expire-cache
- 安装salt-minion, salt-master或者其它组件:
     sudo yum install salt-master
     sudo yum install salt-minion
     sudo yum install salt-ssh
     sudo yum install salt-syndic
     sudo yum install salt-cloud
     sudo yum install salt-api
- 如升级,需要重启:
 sudo systemctl restart salt-minion
CentOS6
- 添加Repo的Yum源:

sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el6.noarch.rpm
- 更新缓存
sudo yum clean expire-cache
- 安装salt-minion, salt-master或者其它组件:
     sudo yum install salt-master
     sudo yum install salt-minion
     sudo yum install salt-ssh
     sudo yum install salt-syndic
     sudo yum install salt-cloud
     sudo yum install salt-api
- 如升级,需要重启:
 sudo service salt-minion restart
/etc/hosts
添加
127.0.0.1       salt
比较常见操作
批量修改密码
CentOS等Rehat版本
#salt '*' cmd.run 'echo "visn6666" | passwd --stdin root'
Ubuntu版本
#salt '*' cmd.run  'echo "root:visn6666" |chpasswd'
但我们不能这样直接执行,salt '*' 是代表所有以接受Key的环境机器,应应用前先规划和分出哪些是Ubuntu哪些是CentOS,哪些是开发环境,哪些是测试环境
所以一开始所有的客户端salt-minion 我会在安装启动时,在他们的配置文件中。先定义一个主机名,例如:
在被管端配置master的ip地址我会初始三个地方的配置
比如Ubuntu的VM
vi /etc/salt/minion
master: 主管端的IP或域名
客户端的ID
id: 10.40.200.114
客户端的填充域名
append_domain: ubuntu1404.stg
最终上报到master的Key为:10.40.200.114.ubuntu1404.stg
比如centos的VM
vi /etc/salt/minion
master: 主管端的IP或域名
客户端的ID
id: 10.40.200.112
客户端的填充域名
append_domain: centos7.stg
最终上报到master的Key为:10.40.200.112.centos7.stg
如此一来,在批量修改密码,好操作些,因为它支持正则表达式匹配
CentOS等Rehat版本
# salt -E '.*centos*'  cmd.run 'echo "visn6666" | passwd --stdin root'
Ubuntu版本
# salt -E '.*ubuntu*' cmd.run  'echo "root:visn6666" |chpasswd'
当然如果没有提前规划好上报名字名称,也可通过以下方法-G方法进行操作,同理
salt -G "os:ubuntu"  cmd.run  'echo "root:visn6666" |chpasswd'
salt -G "os:centos"   cmd.run 'echo "visn6666" | passwd --stdin root'
批量更新软件
salt -E '.*ubuntu*' cmd.run  'apt-get install -y zip unzip'
salt -E '.*centos*'   cmd.run  'yum install -y unzip zip'
批量创建普通用户
salt -E '10.40.200.2[0-9]*|10.40.200.30.*|10.40.200.4[0-9]*' cmd.run 'groupadd venic'
salt -E '10.40.200.2[0-9]*|10.40.200.30.*|10.40.200.4[0-9]*' cmd.run 'adduser -g venic test'
批量替换配置文件(在没有足够的自信下,而且没有先使用单机验证过的话,不推荐这方法,因为配置文件中如果出现引号字符,会导致提前中断不成功,推荐使用配置文件管理的模块)

salt -E '.*centos*' cmd.run 'cat > /etc/hosts << EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.40.150.150 zabbix-server.venic.com

EOF

批量追加配置文件(在没有足够的自信下,而且没有先使用单机验证过的话,不推荐这方法,因为配置文件中如果出现引号字符,会导致提前中断不成功,而且如果有些已推加了,再容易再重复追加。推荐使用配置文件管理的模块)
salt -E '.*centos*'  cmd.run 'cat >> /etc/security/limits.conf << EOF
* soft   nofile   65536
* hard nofile 65536
EOF