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

Hostname IP地址  节点 服务
salt-master 10.10.100.127 master salt-ssh
salt-client01 10.10.100.8  minion salt-minion
salt-client02 10.10.100.148  minion salt-minion

客户端在/etc/hosts文件中写入主机名和ip的映射关系:

echo  "10.10.100.8 salt-client01" >> /etc/hosts
echo "10.10.100.148 salt-client02" >> /etc/hosts  

1.安装salt-ssh(在salt-master端安装)

yum -y install salt-ssh

2.配置/etc/salt/roster,所有需要安装被控端的主机信息,都在这里配置和定义。

[root@salt-master ~]# vim /etc/salt/roster

# Sample salt-ssh config file
#
10.10.100.8:
host: 10.10.100.8
user: root
passwd: 1q2w3e4r5t--==
port: 22
timeout: 10
10.10.100.148:
host: 10.10.100.148
user: guest
passwd: 1q2w3e4r5t--==
sudo: True
port: 22
timeout: 10

3.编写state.sls文件

1>.创建目录

mkdir /etc/salt/states/minions/conf			#存放统一管理minion端的配置文件信息
mkdir /etc/salt/states/minions/yum.repos.d        #yum源的配置信息 路径:/etc/salt/states/minion
目录树结构如下: [root@Testa-www minions]# tree
.
├── conf
│?? └── minion
├── install.sls
└── yum.repos.d
├── CentOS6-Base-163.repo
└── epel.repo 2 directories, 4 files

2>.编写vim /etc/salt/states/minions/install.sls文件

#salt_minion_install
minion_yum: #配置yum源信息
file.recurse:
- name: /etc/yum.repos.d
- source: salt://minions/yum.repos.d
- user: root
- group: root
- file_mode: 644
- dir_mode: 755
- include_empty: True
minion_install: #安装salt-minion
pkg.installed:
- pkgs:
- salt-minion
- require:
- file: minion_yum
- unless: rpm -qa | grep salt-minion
minion_conf: #minion配置文件信息
file.managed:
- name: /etc/salt/minion
- source: salt://minions/conf/minion
- user: root
- group: root
- mode: 640
- template: jinja
- defaults:
minion_id: {{ grains['fqdn_ip4'][0] }} #要求客户端/etc/hosts中绑定其IP及主机名,不绑定主机名在127.0.0.1下
- require:
- pkg: minion_install
minion_service: #服务状态
service.running:
- name: salt-minion
- enable: True
- require:
- file: minion_conf

3.>修改/etc/salt/states/minions/conf/minion文件如下两行:

master: 10.10.100.127    		  #master端IP
id: {{ minion_id }}         #jinja格式

4.>定义vim /etc/salt/states/top.sls文件。

base:
'*': #主机信息
- minions.instal #执行minions目录下的install.sls文件

最终目录结构如下:

路径:/etc/salt/states
[root@salt-master states]# tree
.
├── minions
│?? ├── conf
│?? │?? └── minion
│?? ├── install.sls
│?? └── yum.repos.d
│?? ├── CentOS6-Base-163.repo
│?? └── epel.repo
└── top.sls 3 directories, 5 files

4.部署salt-minion

salt-ssh端执行如下命令:

salt-ssh -i '*' test.ping 								 #测试主机连通性,如果没问题执行下面的命令
salt-ssh -i '*' state.sls minions.install

5.验证结果:

[root@salt-master ~]# salt-ssh -ir '*' 'ps aux | grep salt' |grep salt |grep -v grep |wc -l
2

参考文档:https://www.sudops.com/you-must-have-a-tty-to-run-sudo.html 

       http://www.cnblogs.com/jim-hwg/p/4952418.html

http://blog.csdn.net/hnhuangyiyang/article/details/50421422# 

 

  

Salt-ssh批量自动安装被控端salt-mini的更多相关文章

  1. 自动化运维之-PXE实现系统批量自动安装

    转自:https://www.linuxidc.com/Linux/2017-10/147379.htm 本节索引 需求分析 PXE简介 整体方案 服务选择 功能实现 安装调试 错误分析 总结 1 需 ...

  2. s32 kickstart 批量自动安装系统

    1. 自动安装操作系统 http://blog.oldboyedu.com/autoinstall-kickstart/   自动安装操作系统的解决方案:kickstart.cobbler(披着web ...

  3. 自动安装Redis服务端与PHP扩展Redis

    该脚本基于阿里云服务器安装脚本,并只能运用于centos / aliyun os,该脚本使用时,需要与阿里云安装脚本的install.sh放在同一目录下.有缘人切忌乱用: #! /bin/bash # ...

  4. 自动安装memcached服务端与PHP扩展Memcached

    该脚本基于阿里云服务器安装脚本,并只能运用于centos / aliyun os,该脚本使用时,需要与阿里云安装脚本的install.sh放在同一目录下.有缘人切忌乱用: #! /bin/bash # ...

  5. 电脑用bat脚本给手机批量自动安装apk文件 autoInstall.bat

    ------创建这个文件autoInstall.bat 内容如下: @ECHO off @REM 将adb.exe添加到PATH中ECHO 初始化…@SET PATH=%PATH%;%CD%\Adb@ ...

  6. Linux部署之批量自动安装系统之测试篇

    1.         客户端从网络启动如下   2.         复制vesamenu.c32文件可解决上面的问题   3.         客户端再次启动   4.         选择第一个进 ...

  7. Linux部署之批量自动安装系统之Kickstart篇

    1.         安装   2.         在桌面环境下啊配置   3.         Kickstart之基本配置   4.         Kickstart之安装方法   5.    ...

  8. Linux部署之批量自动安装系统之TFTP篇

    1.         安装:yum install tftp-server –y   2.         配置tftp文件开启tftp功能   3.         开启依赖服务xinetd   4 ...

  9. Linux部署之批量自动安装系统之DHCP篇

    1.         安装:yum install dhcp   2.         Ip配置信息   3.         Dhcp配置文件如下   4.         配置完后检查语法是否错误 ...

随机推荐

  1. 【转】提交http请求之python与curl

    提交http请求之python与curl 由于Openstack是python实现wsgi的REST ful架构,在学习和调试的过程中,常常会遇到http请求的提交,于是顺手整理下python和cur ...

  2. HP管理工具System Management Homepage安装配置

    如果用HP的启动光盘进行系统安装时,HP SMH 及相关组件会自动安装完成,但如果是用操作系统光盘进行系统安装,则HP SMH相关组件需要手动进行安装及相关设置!HP SMH由三部分组成:HP Sys ...

  3. 纯html实现将网页页面分享到微信朋友圈添加缩略图图片的方法

    在分享页面中的body中最前面添加一个隐藏的div,里面放一个300*300的正方形图片即可:如下 <div style="display:none"><img ...

  4. form的验证包括手机号邮箱等等

    $(function(){    var checkedByVerifyCode = false;    var checkMobieCode = false;    var checkedMobil ...

  5. Zabbix之Python发送邮件

    前言:继前篇zabbix邮件乱码问题解决,转码后,问题是解决了,但是又发现问题,有时候告警邮件没有邮件内容,只有标题,一直没找出原因,所以就换了Python脚本发送邮件,代码如下. 使用前当然是要先安 ...

  6. idea Error:(1, 10) java: 需要class, interface或enum, 未结束的字符串文字,Error:(55, 136) java: 非法字符: \65533

    1.未结束的字符串文字,Error:(55, 136) java: 非法字符: \65533  这些乱七吧八遭的错误如果很多的话 , 尝试 重新修改下生成目录 修改下语言等级 上述方法都不行 ,还报错 ...

  7. eclipse Maven 使用记录 ------ 建立 webapp项目

    maven 建立 webapp 项目 有2种方式 ,  1.在原先app上转换为webapp项目  2.建立maven项目的时候  filter 选择webapp 该选项把webapp文件目录建好,其 ...

  8. Android开发(十一)——ImageView的尺寸设置scaleType

    ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType). android:scaleType是控制图片如 ...

  9. [转]PowerDesigner中name和code取消自动关联

    PowerDesigner中,但修改了某个字段的name,其code也跟着修改,这个问题很讨厌,因为一般来说,name是中文的,code是字段名. 解决方法如下: 1.选择Tools->Gene ...

  10. 关于dubbo的provider和consumer都配置timeout超时时间的情况

    本文转自:http://blog.csdn.net/lkforce/article/details/54380201 前言 在dubbo的provider和consumer的配置文件中,如果都配置了t ...