Salt-ssh批量自动安装被控端minion

Salt-ssh是Saltstack的另外一种管理方式,无需安装minion端,可以运用salt的一切功能,管理和使用方法基本和salt一样。但是,salt-ssh并没有继承原来的ZeroMQ通讯架构。所以,她的执行速度比较慢。作为salt的补充在初次批量安装minion或某些不能安装minion的特殊场景下还是非常好用的。

上篇文章《集中化管理平台Saltstack》,我们介绍了saltstack的安装配置。这里我们来介绍下怎么批量安装被控端。saltstack-master已经配置好了,我们在这里还是采用原来的节点。下面,自动安装mysql节点为被控端。

一,环境配置说明 1.IP地址分配

Hostname IP地址 节点 服务

saltstack01 10.62.83.211master salt-ssh

mysql01 10.62.83.201 mysqlminion

2.软件版本

软件 版本号

OS CentOS release 6.7 (Final)

Python python2.6.6

salt 2015.8.10(Beryllium)

二,安装配置salt-ssh1.yum源配置

我们在这里还是采用上篇文章的yum文件

2.安装salt-ssh

Saltstack01节点继续安装salt-ssh

#yum-yinstallsalt-ssh

3.配置roster

所有需要安装被控端的主机信息,都在这里配置。

#vim/etc/salt/roster#Samplesalt-sshconfigfile#web1:#host:192.168.42.1#TheIPaddrorDNShostname#user:fred#Remoteexecutionswillbeexecutedasuserfred#passwd:foobarbaz#Thepasswordtouseforlogin,ifomitted,keysareused#sudo:True#Whethertosudotoroot,notenabledbydefault#web2:#host:192.168.42.210.62.83.201:##批量部署多客户端,在此配置文件中添加类似客户端的选项即可host:10.62.83.201user:rootpasswd:Emsee123!port:22timeout:10

当客户端数量较多时,手工配置/etc/salt/roster比较繁琐,这里写一个简单脚本供参考:

#vimip.sh#!/bin/bashforiin`cat/root/hostip`doecho"$i:">>/etc/salt/roster##$i表示取文件的每行内容echo"host:$i">>/etc/salt/rosterecho"user:USERNAME">>/etc/salt/rosterecho"passwd:PASSWORD">>/etc/salt/rosterecho"sudo:True">>/etc/salt/rosterecho"timeout:10">>/etc/salt/rosterdone

其中/root/hostip为客户端IP文件,例如:

10.10.10.3010.10.10.3110.10.10.32三,配置state.sls文件结构

*.sls文件对被控主机进行状态管理

1.创建目录

#mkdir/srv/salt/minions#mkdir/srv/salt/minions/conf#mkdir/srv/salt/minions/yum.repos.d2.编写.sls文件


#viminstall.sls#salt_minion_installminion_yum:file.recurse:-name:/etc/yum.repos.d-source:salt://minions/yum.repos.d##提前准备的yum文件路径-user:root-group:root-file_mode:644-dir_mode:755-include_empty:Trueminion_install:pkg.installed:-pkgs:-salt-minion-require:-file:minion_yum-unless:rpm-qa|grepsalt-minionminion_conf:file.managed:-name:/etc/salt/minion-source:salt://minions/conf/minion##minion端需要配置的minion主配置文件-user:root-group:root-mode:640-template:jinja-defaults:minion_id:{{grains['fqdn_ip4'][0]}}##这里grains是收集minion端/etc/hosts文件IP和主机名的-require:-pkg:minion_installminion_service:service.running:-name:salt-minion-enable:True-require:-file:minion_conf3.编写minion主文件


master:10.62.83.211id:mysql01#这里需要在/etc/hosts中配置对应的域名解析

注意:

最终的目录结构如下图:

四,部署salt-minion

Salt-ssh端执行如下命令:

#salt-ssh-i'*'state.slsminions.install##’*’表示所有,也可有替换为仅仅需要安装minion的主机名或IP地址五,结果验证

#salt-ssh-ir'*''psaux|grepsalt'|grepsalt|grep-vgrep|wc-l##查看安装minion端的salt-minion进程是否运行,一个客户端运行一个salt-minion服务。


参考博文:http://www.cnblogs.com/jim-hwg/p/4940480.html