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.按装 ...
随机推荐
- Reprojection Matrix Q
Given the disparity d and 2D point (x, y) , we can derive the 3D depth using the 4-by-4 reprojection ...
- FreeBSD Intel SYSRET Kernel Privilege Escalation Exploit
/* * FreeBSD 9.0 Intel SYSRET Kernel Privilege Escalation exploit * Author by CurcolHekerLink * * Th ...
- 如何把in_array 的第三个参数strict设置为 true
var_dump(in_array(0, array('s' )); 这句话的结果是bool(true). 因为in_array会将0 和's' 进行比较,0是number类型,'s'是string类 ...
- HDU 1043 & POJ 1077 Eight(康托展开+BFS+预处理)
Eight Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 30176 Accepted: 13119 Special ...
- HDU 2795 Billboard(线段树的另类应用)
Billboard Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- PHP 中和 HTTP 相关的函数及使用
① get_headers 方法:取得服务器响应一个 HTTP 请求所发送的所有标头 例如: <?php $httpinfo = get_headers('http://www.baidu.co ...
- django通过middleware计算每个页面的详细执行时间
你可以自定义一个MiddleWare类,然后在settings.py引用这个中间件,添加到MIDDLEWARE_CLASSES里,然后在公共模板里添显示代码即可. 添加到公共模板里的代码: <d ...
- 【翻译】西川善司的「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,后篇
http://www.4gamer.net/games/216/G021678/20140714079/ 连载第2回的本回, Arc System Works开发的格斗游戏「GUILTY G ...
- 去除字符串中空格的方法(2016.1.12P141-2)
// forif来处理空格 // 方法一 String str = " ww sse rr"; String str1;// 定义一个中间变量 String str2 = &quo ...
- Delphi 的绘图功能[1] - PolyBezier、PolyBezierTo
双击代码全选 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 unit Unit1; interface uses Windows, Messages, SysUtils ...