首页 > 代码库 > SaltStack安装,添加主机,基本命令
SaltStack安装,添加主机,基本命令
为什么选择SaltStack:
可管理主机种类多样化,如Windows,Linux
使用Python开发,对于了解Python用户进行二次开发简单
部署方便(相对于Ansible复杂,但客户端安装部署相对非常简单了)
扩展性强
并处理能力强
强大的模块功能,具有很多已有模块可以处理日常自动化运维与复杂自动化运维
官文文档,以及社区文档丰富
强大的API功能
前言:
自动化运维的前提首先是标准化,如果对服务器部署,系统应用部署,系统管理没有一定的标准来支撑那么不管使用任何的自动化运维工具都是无法实现你想要的结果,所以我们要实现自动化运维的首要事情就是实现标准化管理。关于何为标准化,比如:计算机名命名,IP地址分类,MySQL部署标准,Nginx部署标准,系统登录标准,系统初始化标准等
虽然SaltStack有众多的好处,各位在对自动化运维工具的选择上面还是要三思而后行,比如,如果你只有少量的机器,那么不推荐使用SaltStack进行管理,反而使用Ansible更方便。另外如果有上百的服务器,并且了解Pyhton的使用,需要管理的机器种类繁多,那么我推荐你使用SaltStack。接下来讲解一下SaltStack服务端与客户端的安装
以下安装全根据官方文档复制,并经过在CentOS7系统测试OK,地址如下:
https://repo.saltstack.com/#rhel
服务端安装(master):
rpm -e --nodeps python2-pycryptodomex yum install python-crypto yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm yum clean expire-cache yum install salt-master systemctl start salt-master
客户端(minion)安装:
rpm -e --nodeps python2-pycryptodomex yum install python-crypto yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm yum clean expire-cache yum install salt-minion
将客户端添加至服务端:
修改客户端配置文件:/etc/salt/minion_id
打开master: salt此行的注释,并于salt修改为服务端的IP地址,或者可访问的域名或FQDN名,如
master: salt.ops.aek.com
修改/etc/salt/minion_id
此文件的内容就是注册到服务端,服务端所看到的客户端ID,服务端通过此ID对当前客户端进行管理,如:
yuyan.test.aek.com
启动客户端服务
systemctl start salt-minion
服务端查看并同意
salt-key #或 salt-key -L
执行以上命令会出现四个分组,如下图所示
Accepted Keys: #已经建立连接的客户端 Denied Keys: Unaccepted Keys: #发送请求过来,但未同意的客户端 yuyan.test.aek.com #客户端ID Rejected Keys:
服务端接受请求
salt-key -a yuyan.test.aek.com -y #以上命令执行成功后yuyan.test.aek.com就会被移动到Accepted Keys:下面
说明:第二部的操作可以不做,默认如果计算机名为系统默认localhost的话,那么会以IP为ID发送给服务端,如果改过计算机名的话,那么会以当前计算机名为ID发送到服务端,如果不想改动本地计算机名,但不想以此计算机为ID的话就修改/etc/salt/minion_id
基本命令用法(在服务端执行):
格式:salt host function arguments
salt yuyan.test.aek.com test.ping salt yuyan* cmd.run hostname salt -E "^yuyan.*$" cmd.run w
说明:
salt:主命令,一般用于向客户端发起任务
host:接收命令的主机,这里可以使用主机ID,ID可以使用通配符,正则表达式,以及更高及的一些用法,更高级的用法将在后面博文中详细介绍
function:这里为函数,这里的函数我们可以理解为一个Python模块,模块就有方法,使用点分隔,如cmd.run,更多的模块,与模块方法的使用将在后面博文中详细介绍
arguments:这里为方法的参数,有的模块方法可以没有参数,如test.ping,那么这个参数就可有可无,但cmd.run,这里执行shell命令,那么参数就为要执行的命令
示例:批量所有主机安装软件包
salt "*" pkg.install nginx
以上示例我们都在命令行中执行,但有时候命令行执行无法满足我们的需求,这时候我们需要编辑写SaltStack配置文件来完成我们的应用部署等其它工作,如源码部署MySQL,JDK等,此文件就暂时讲解这么多,让大家对SaltStack有个大概的了解,后续的博文件中再介绍它的一些常用模块,配置文件编辑,如何自动化部署常见应用等
本文出自 “蓝色_风暴” 博客,请务必保留此出处http://270142877.blog.51cto.com/12869137/1947847
SaltStack安装,添加主机,基本命令