耿宝橙的糖
奥特曼打到了小怪兽,不是偶然是必然。 书到用时方恨少,也不是偶然是必然。

 

hello eveyone 好久不见了,最近一直忙忙叨叨的自己的事情。腾出手来写写,这几天励志要干的事情。今天先写下今天的学习成果,SaltStack的入门。废话不多,上菜。

什么是SaltStack?

学以致用,要知道什么是SaltStack。官方解释:

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

salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等。那么Stack,可能是因为最近很火的名词。很多软件都有用到stack这个来命名自己的软件,例如:openstack等。大家有兴趣可自行百度或者谷歌。

以我个人的理解来说就是它是一个可以减轻运维工作的自动化部署的软件。当你的服务器达到一定的数量,然而又碰到需要批量部署的软件时,这时就会用到了自动化一键部署的软件。就是SaltStack。它的升级版有ansible,目前用的也不少。感兴趣的可以自行百度学习一下。SaltStack也是基于python写出来的,所以会用python的可以用python对它的模块进行二次开发。

SaltStack安装

SaltStack安装很简单,用yum 安装就可以,有人说用源码安装也可以。但是性能上来说是一样的,并不是源码的就比Yum 安装的好。都一样。所以这里我安装的方式是Yum安装的方式,我有两台服务器用来安装做测试,它需要matser端跟minion端。

 

以名字命名两台服务器,master端gengzhaodan minion端gengzhaodan1。以上安装方式就已经安装完成了。接下来就是更改配置文件以及启动,更改配置文件是更改的:

 

 

更改的是你的master的IP 地址,或者你的域名。我这里是IP 地址,不方便展示。请脑补。

然后还有地方是ID但是我没有更改,因为我用的就是默认的,这样可以找到主机名。别忘记了你的Hosts里的去配置。别问我为什么。

然后启动master:

启动你的minion:

启动后,并没有真正的完成,你还需要认证你的服务器,假如你的master是主人,你的minion是仆人,那么仆人也是需要认证主人的。那么怎么认证呢,可以看到在minion启动后就会自动生成公钥和私钥。

一样的master也会有私钥跟公钥。

那么剩下就是要认证:

 

-A   就是认证所有的KEY。因为我就两台服务器。

可以用-L来查看认证的情况,可以看到我的两台服务器都已经认证完成。就可以操作一台master来控制另一台。

后面我会安装apache .

 

 

SaltStack命令参数的用法:

要运行SaltStack必须先了解几项规则,写法是YAML语法,语法很简单,结构通过空格来展示,项目使用 ‘-’ 来代表,键值使用 ‘:’ 来分割。这就是YAML写法,另外需要注意它也有自己的规则。

规则一 缩进:

缩进的原则是不要用TAB键,而是用空格,两个空格为基准。后面我会举例说明。

规则二 冒号:

python的字典是简单的键值对,数据类型叫哈希或者关联数组。字典KEY在YAML中的表现形式是一个以冒号结尾的字符串:

my_key: my_value

规则三 短横杠:

想要表示列表项,就可以用短横杠来表示,就是一个横杠加一个空格。多项使用同样的缩进级别作为同一列表的一部分。例如:

- list_value_one 

还有一种技巧,叫jinjia。是用来判断你是用的模块还是普通的文件。表示方法如下:

加 -template: jinjia  这个就是表示了使用了模板。具体的可以后期说到。

 

 

 SaltStack批量部署apache 举例说明:

在平常的环境中,安装apache 可以用源码,也可以用yum来安装。在这个例子中我是用的yum来安装的。可以先看下代码:

注意到的一点是不管你写的配置文件是什么,后缀必须是sls这是标准配置。没有为什么。这个代码很简单的我先指定了名称,这个名称可以自己随便写,建议跟你的项目名称有关系。路径默认/srv后面的需要你手动创建就是:

通过以上的实例,我们来做个解释。刚才说到了首先apache-install:这是自定义的名称。pkg.installed:这是yum安装包的写法。它就会自动去安装yum httpd。可以看到了YAML规则的用法:缩进 冒号 短横杠。

-name 是你要安装到另一台服务器的服务 你也可以写路径我这边就省去了,默认路径安装。 - httpd 就是安装的服务以及apache需要依赖的devel包。安装后要有个运行启动的动作,所以模块用法,service.running这是模块service的用法,更多模块的用法可查看SaltStack官网。下面的- name 就是说的你要启动的服务,是否开机自启动,是否支持重启。TRUE这个布尔值就是支持的意思。

写好了模块,你就可以运行了。运行的命令是:

salt {‘操作目标’} {方法}{参数}

 

因为我这里是安装过,所以结果就不显示。肯定是成功了。它会有一个提示。

 

以上就是基本的用法,当然还有基本的常用命令。例如:

有很多常用的命令,我们明天再继续。886~~~~~~~~~~~

 

posted on 2017-12-19 21:42  耿宝橙的糖  阅读(238)  评论(0)    收藏  举报