salt 初学篇(一)

salt 介绍:

Salt,,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。

salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等.

salt安装:

master:192.168.31.231  mongo1.example.com

minion:192.168.31.232  mongo2.example.com  

minion:192.168.31.233  mongo3.example.com

修改/etc/hosts

192.168.31.231 mongo1.example.com
192.168.31.232 mongo2.example.com
192.168.31.233 mongo3.example.com

系统版本:

[[email protected] salt]# uname -r
2.6.32-431.el6.x86_64
[[email protected] salt]# uname -n
mongo1.example.com
[[email protected] salt]# cat /etc/redhat-release
CentOS release 6.5 (Final)

安装master:

[[email protected] ~]# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
Retrieving http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
warning: /var/tmp/rpm-tmp.MJ9wJa: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%][[email protected] ~]# yum install -y salt-master

修改/etc/salt/master文件:

添加:

publish_port: 4505    #监听salt的消息发布系统端口
ret_port: 4506        #salt客户端与服务端通信的端口

启动master服务:service salt-master start

安装minion:

[[email protected] ~]# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
Retrieving http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
warning: /var/tmp/rpm-tmp.QcKooE: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]
[[email protected] ~]# yum install -y salt-minion

修改/etc/salt/minion文件:

添加:

master: mongo1.example.com
id: mongo2

启动minion服务:service salt-minion start

查看认证:

[[email protected] pki]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
mongo2
mongo3
Rejected Keys:

添加认证:

[[email protected] pki]# salt-key -a mongo2
The following keys are going to be accepted:
Unaccepted Keys:
mongo2
Proceed? [n/Y] y
Key for minion mongo2 accepted.
[[email protected] pki]# salt-key -L
Accepted Keys:
mongo2
Denied Keys:
Unaccepted Keys:
mongo3
Rejected Keys:
[[email protected] pki]# salt-key -a mongo3
The following keys are going to be accepted:
Unaccepted Keys:
mongo3.example.com
Proceed? [n/Y] y
Key for minion mongo3 accepted.
[[email protected] pki]# salt-key -L
Accepted Keys:
mongo2
mongo3
Denied Keys:
Unaccepted Keys:
Rejected Keys:

或者可以配置自动认证,在/etc/salt/master中添加auto_accept: True,重启master服务。

测试验证:

[[email protected] minions]# salt ‘*‘ test.ping
mongo3:
    True
mongo2:
    True
[[email protected] salt]# salt ‘*‘ cmd.run ‘date‘
mongo3:
    Mon Sep  7 21:42:13 CST 2015
mongo2:
    Mon Sep  7 21:42:14 CST 2015
[[email protected] salt]# salt ‘*‘ cmd.run ‘uptime‘
mongo3:
     21:42:18 up  1:44,  1 user,  load average: 0.00, 0.00, 0.00
mongo2:
     21:42:20 up  1:44,  1 user,  load average: 0.00, 0.00, 0.00

删除不需要的认证:

[[email protected] minions]# pwd
/etc/salt/pki/master/minions
[[email protected] minions]# ls
mongo2  mongo2.example.com  mongo3  mongo3.example.com
[[email protected] minions]# rm -rf mongo2.example.com mongo3.example.com 

简单测试脚本:

/srv/salt目录需要手动创建

[[email protected] minions]# cd /srv/salt/
[[email protected] salt]# ls
test.sh
[[email protected] salt]# cat test.sh
#!/bin/bash
echo "ni hao"
[[email protected] salt]# salt ‘*‘ cmd.script salt://test.sh
mongo3:
    ----------
    pid:
        2617
    retcode:
        0
    stderr:
    stdout:
        ni hao
mongo2:
    ----------
    pid:
        1733
    retcode:
        0
    stderr:
    stdout:
        ni hao
[[email protected] salt]# 
时间: 2024-10-29 22:19:37

salt 初学篇(一)的相关文章

java第四章编程题(初学篇)

代码: 1 /* 2 test.java 3 */ 4 package test; 5 public class test { 6 public static void main(String args[] ) 7 { 8 CPU ccp= new CPU(); 9 HardDisk hhd=new HardDisk(); 10 PC pc =new PC(); 11 ccp.setSpeed(2200); 12 hhd.setAmount(200); 13 pc.setCPU(ccp); 14

java学习之第五章编程题示例(初学篇)

1 /* 2 Animal.java 3 */ 4 package animal; 5 6 public abstract class Animal { 7 public abstract void cry(); 8 public abstract String getanimalName(); 9 } 1 //Dog.java 2 package animal; 3 4 public class Dog extends Animal 5 { 6 7 String aa="旺旺"; 8

HttpClient 4.1.3 初学篇---使用Get和Post模拟登录简单页面(分别带参数)

最近需要解决的问题需要用到Httpclient,模拟登陆网站!成功之后就可以用代码的方式获取网站内容或者发送请求,类似网络爬虫. 但是在网上找了好多篇Blog,发现每一片的写法都不一样,也纠结了些时间,很纳闷,才发现Httpclient版本不一样...现在在这里说明我使用的版本是HttpClient 4.1.3,我已上传下载 看了些Blog,发现直接访问大型的网站不太容易,于是就自己写了小的站点,只有一个Servlet,来接受参数(用户名和密码)就ok了! 这个Servlet就只有get与pos

Unity3d - 初学篇 Event Functions 的 继承 机制

我们知道Start() Update() 等之类的 事件函数 在Unity 主线程中是依次调用的.至于调用的顺序可以查手册. 由此继承机制也会发生一些改变. 测试一: public class MyTest2 : MonoBehaviour { void Start () { //EventDelegate.Add(tween.onFinished, Test, true); Debug.Log(" MyTest2 Start "); } void Update() { Debug.L

angularJS初学篇-1添加随笔

1.头部引入angularJS文件 <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script> 2.angularjs指令 ng-app --指定了一个Angularjs的应用程序 ng-app 指令定义了 AngularJS 应用程序的 根元素. ng-app 指令在网页加载完毕时会自动引导(自动初始化)应用程序. 稍后您将学习到 ng-ap

Java历程-初学篇 Day02变量,数据类型和运算符

一,数据类型 1,基础数据类型 整型 byte short int long 浮点型 float double 字符型 char 布尔类型 boolean 2,引用类型 String 字符串型 二,变量 1,声明变量的格式: 数据类型 变量名=变量的值; 2,各类型的示例: 3,变量名的命名规则: (1)变量必须以字母,下划线"_",或"$"符号开头; (2)变量可以包括数字,但不能以数字开头; (3)除"_","$"符号外,

Java历程-初学篇 Day09 冒泡排序

冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端. 冒泡排序算法的运作如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重

Java历程-初学篇 Day01初识java

HelloWorld!!!!! 一,第一个java程序的构成 1,外层框架 class 后面的类名必须与文件名相同 起名方法:1)构成只能有_ $ 字母 数字 2)数字不能开头 3)首字母必须大写 4)见名知意 2,内层框架 main方法 一个类方法只有一个main方法入口 3,输出语句 println的意思是结束这句之后换行,可以不加,写为print; 括号内输出的内容要用双引号引起; 句末必须加分号; 二,完整的HelloWorld console的输出为 三,转义符 1,\n   换行的意

Java历程-初学篇 Day04选择结构(1)

一,if 1,单分支 if(条件){ } 示例: 2,双分支 if(条件){ }else{ } 示例: 3,多重if if(条件){ }else if(条件){ }else{ } 示例: 4,嵌套if if(条件){ if(条件){ }else{ } }else{ } 示例: