saltstack之(十)扩展组件salt-ssh
场景:公司有50台服务器,需要安装salt-minion客户端,并完成与salt-master的认证,接受salt-master的管理。本片文章只用了2台服务器做演示,大家可以在roster文件中定义所有50台机器的信息。
规划:
192.168.3.1 node1.xkops.com  --角色:salt-master|minion1
192.168.3.2 node2.xkops.com  --角色:salt-minion2
1.在node1上安装salt-master和salt-ssh,启动salt-master并设置开机启动。
[root@node1 ~]# yum -y install salt-master salt-ssh
[root@node1 ~]# service salt-master start
[root@node1 ~]# chkconfig salt-master on
2.在node1上编辑salt-ssh的roster文件。
[root@node1 ~]# cat /etc/salt/roster
node1.xkops.com:
host: 192.168.3.1
user: root
passwd: xiaoke
node2.xkops.com:
host: 192.168.3.2
user: root
passwd: xiaoke
3.在node1上测试salt-ssh连接roster文件中定义的客户端。
[root@node1 ~]# salt-ssh --key-deploy -i '*' test.ping 
node2.xkops.com:
    True
node1.xkops.com:
    True
*注释:此时会将node1服务器的key写入所有客户端。故可以将roster文件中的passwd删除,避免密码泄漏。
4.在node1上编写sate.sls文件批量安装salt-minion,目录结构如下:
[root@node1 salt]# pwd
/srv/salt
[root@node1 salt]# tree
.
├── files
│ └── minion
├── salt-minion.sls
└── top.sls directory, files
5.state文件的详细内容如下:
[root@node1 salt]# cat top.sls
base:
'*':
- salt-minion
[root@node1 salt]# cat salt-minion.sls
salt-minion-install:
pkg.installed:
- name: salt-minion
file.managed:
- name: /etc/salt/minion
- source: salt://files/minion
- user: root
- group: root
- mode:
- template: jinja
- defaults:
HOST: {{ grains['id'] }}
- require:
- pkg: salt-minion-install
service.running:
- name: salt-minion
- enable: true
- reload: true
- watch:
- file: salt-minion-install
[root@node1 salt]# egrep ^id files/minion
id: {{ HOST }}
6.执行编写的状态模块
[root@node1 salt]# salt-ssh '*' state.sls salt-minion
7.执行成功后,检查客户端salt-minion状态。
node1:
[root@node1 salt]# chkconfig --list salt-master
salt-master :关闭 :关闭 :启用 :启用 :启用 :启用 :关闭
[root@node1 salt]# service salt-minion status
salt-minion (pid ) 正在运行...
[root@node1 salt]# egrep '^id|^master' /etc/salt/minion
master: node1.xkops.com
id: node1.xkops.com
node2检查同上。
8.在master端查看。
[root@node1 salt]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
node1.xkops.com
node2.xkops.com
9.接受所有的客户端认证
[root@node1 salt]# salt-key -y -A
*注释:当然也可以不使用状态文件,使用salt-ssh直接执行shell命令安装salt-minion也可以。
saltstack之(十)扩展组件salt-ssh的更多相关文章
- saltstack之(十一)扩展组件salt-returners
		场景:每次执行salt任务后,将返回结果存入到数据库,可以做任务跟踪以及历史查看. 1.在node1上安装mysql数据库并启动设置root密码.[root@node1 ~]# yum -y inst ... 
- Bootstrap入门(二十)组件14:警告框
		Bootstrap入门(二十)组件14:警告框 警告框组件通过提供一些灵活的预定义消息,为常见的用户动作提供反馈消息,提示.通知或者警示,可以迅速吸引注意力. 1.情景警告框 2.可关闭的警告框 3. ... 
- Bootstrap入门(十)组件4:按钮组与下拉菜单结合
		Bootstrap入门(十)组件4:按钮组与下拉菜单结合 先引入本地的CSS文件和JS文件(注:1.bootstrap是需要jQuery支持的.2.需要在<body>当中添加) < ... 
- easyUI扩展组件
		$.parser.plugins.push("aa"); //注册扩展组件 $.fn.aa= function (options, param) {//定义扩展组件 //当opti ... 
- MEF(Managed Extensibility Framework)有选择性地使用扩展组件
		在"MEF(Managed Extensibility Framework)使用全部扩展组件"中,客户端应用程序调用了所有的扩展组件,而且如果有新的扩展组件加入,必须先关闭程序,再 ... 
- MEF(Managed Extensibility Framework)使用全部扩展组件
		MEF(Managed Extensibility Framework),所在命名空间是System.ComponentModel.Composition.dll.简单来说,MEF是将符合约定(一般是 ... 
- 【Android】10.1 扩展组件库和其他视图--本章示例主界面
		分类:C#.Android.VS2015: 创建日期:2016-02-18 1.主界面运行截图 2.MainActivity.cs文件中对应的代码 chItems.Add(new Chapter() ... 
- easyui基于 layui.laydate日期扩展组件
		本人后端开发码农一个,公司前端忙的一逼,项目使用的是easyui组件,其自带的datebox组件使用起来非常不爽,主要表现在 1.自定义显示格式很麻烦 2.选择年份和月份用户体验也不好 网上有关于和M ... 
- 微信小程序(二十)-UI组件(Vant Weapp)-01按装配置
		1.官网 https://vant-contrib.gitee.io/vant-weapp/#/intro https://gitee.com/vant-contrib/vant-weapp 2.按装 ... 
随机推荐
- spark-shell --conf
			spark-shell --conf -h Usage: ./bin/spark-shell [options] Options: --master MASTER_URL spark://host:p ... 
- easyui datagrid 列显示和隐藏
			//当查询IT基础设施的时候隐藏'STAFF_ID'.'ITSM_STAFF_ID' if($("input[name='currentstate']").val()==2){ $ ... 
- HDU 1016 DFS
			很简单的深搜 只要看出来是深搜... 注意判断最后一点是否与加一为质数 #include<stdio.h> #include<string.h> #include<alg ... 
- nVIDIA SDK White Paper ----Vertex Texture Fetch Water
			http://blog.csdn.net/soilwork/article/details/713842 nVIDIA SDK White Paper ----Vertex Texture Fetch ... 
- Memcached 笔记与总结(2)编译 php-memcache 扩展
			环境:CentOS 6.6 + Apache 2.2.21 + PHP 5.3.10 php-memcache 是 php 写的 memcached 的客户端,以扩展的形式发布. 对于正在运行的 ph ... 
- PHP 开发 APP 接口 学习笔记与总结 - JSON 结合 XML 方式封装通信接口
			要求: 1.在一个类中封装多种数据通信方法(JSON,XML),并且只通过一个入口选择需要的数据通信格式 2.客户端开发工程师可以自行选择数据传输格式(GET 方式) response.php < ... 
- UIbutton 和UIview  切单角
			UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.backgroundColor = [UIColor cya ... 
- NEC学习 ---- 布局 -两列, 左侧定宽,右侧自适应
			CSS代码:以下两处代码是NEC中CSS初始化样式和功能性样式.今后的NEC研究中,默认这两处是引用的. /* 这是CSS reset 代码 --- 初始化样式 */ /* reset */ html ... 
- JMeter使用点滴
			作为一款小巧易用的性能测试工具,JMeter不仅免费开源而且功能强大.易于扩展,如果有一定Java开发基础的话还可以在JMeter上做扩展开发新的插件等,几乎能满足各种性能测试需求,本文用于收集使用J ... 
- asp.net webform杂记
			context.Response.ContentType = "text/plain"; string encodeFileName = HttpUtilit ... 
