场景:公司有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的更多相关文章

  1. saltstack之(十一)扩展组件salt-returners

    场景:每次执行salt任务后,将返回结果存入到数据库,可以做任务跟踪以及历史查看. 1.在node1上安装mysql数据库并启动设置root密码.[root@node1 ~]# yum -y inst ...

  2. Bootstrap入门(二十)组件14:警告框

    Bootstrap入门(二十)组件14:警告框 警告框组件通过提供一些灵活的预定义消息,为常见的用户动作提供反馈消息,提示.通知或者警示,可以迅速吸引注意力. 1.情景警告框 2.可关闭的警告框 3. ...

  3. Bootstrap入门(十)组件4:按钮组与下拉菜单结合

    Bootstrap入门(十)组件4:按钮组与下拉菜单结合   先引入本地的CSS文件和JS文件(注:1.bootstrap是需要jQuery支持的.2.需要在<body>当中添加) < ...

  4. easyUI扩展组件

    $.parser.plugins.push("aa"); //注册扩展组件 $.fn.aa= function (options, param) {//定义扩展组件 //当opti ...

  5. MEF(Managed Extensibility Framework)有选择性地使用扩展组件

    在"MEF(Managed Extensibility Framework)使用全部扩展组件"中,客户端应用程序调用了所有的扩展组件,而且如果有新的扩展组件加入,必须先关闭程序,再 ...

  6. MEF(Managed Extensibility Framework)使用全部扩展组件

    MEF(Managed Extensibility Framework),所在命名空间是System.ComponentModel.Composition.dll.简单来说,MEF是将符合约定(一般是 ...

  7. 【Android】10.1 扩展组件库和其他视图--本章示例主界面

    分类:C#.Android.VS2015: 创建日期:2016-02-18 1.主界面运行截图 2.MainActivity.cs文件中对应的代码 chItems.Add(new Chapter() ...

  8. easyui基于 layui.laydate日期扩展组件

    本人后端开发码农一个,公司前端忙的一逼,项目使用的是easyui组件,其自带的datebox组件使用起来非常不爽,主要表现在 1.自定义显示格式很麻烦 2.选择年份和月份用户体验也不好 网上有关于和M ...

  9. 微信小程序(二十)-UI组件(Vant Weapp)-01按装配置

    1.官网 https://vant-contrib.gitee.io/vant-weapp/#/intro https://gitee.com/vant-contrib/vant-weapp 2.按装 ...

随机推荐

  1. CvMat and cv::Mat

    CvMat: typedef struct CvMat { int type; int step; /* for internal use only */ int* refcount; int hdr ...

  2. 八、job管理

    查看用法: [root@super65 ~]# salt-run -d|grep jobs'jobs.active:' #查看当前执行的job Return a report on all activ ...

  3. Webscan360的防御与绕过

    这两天给360做了一个webscan360的总结,结果补丁还没有出来,就被人公布到了91org上面,既然公开了,那我就做一个总结 首先我们贴上它最新的防御正则 \<.+javascript:wi ...

  4. sqlmap我常用到的几个参数

    -r "抓的包存放的文件路径.txt"    一般方便带cookie与session类型 --dbms Oracle/Mysql     指定数据库类型 指定变量注入点变量:在变量 ...

  5. php常用的对字符串进行加密的算法

    1. 返回文件扩展名 function getformat($file) { $ext=strrchr($file,"."); $format=strtolower($ext);  ...

  6. 启动Automatic Updates出现0x80004015错误的解决办法

    前几天我的本本加入到AD里面了,并且换了个用户名,结果昨天就发现升级出毛病了,Automatic Updates服务无法启动,启动时候出现0x80004015错误:Automatic Updates  ...

  7. Nova相关命令收集

    1. nova list 2. sudo nova-manage service list 8. 创建/删除浮动IP池 nova floating-ip-bulk-create 192.168.0.2 ...

  8. eclipse编译异常修正:the project cannot be built until its prerequisite...

    close错误的project,重新open , 再 clean下 .

  9. php 支持断点续传的文件下载类

    php 支持断点续传的文件下载类 分类: php class2013-06-30 17:27 17748人阅读 评论(6) 收藏 举报 php断点续传下载http测试 php 支持断点续传,主要依靠H ...

  10. iconv vs mb_convert_encoding

    iconv 字符串按要求的字符编码来转换 string iconv ( string $in_charset , string $out_charset , string $str ) 将字符串 st ...