首页 > 代码库 > Salt-ssh批量自动安装被控端salt-mini
Salt-ssh批量自动安装被控端salt-mini
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