saltstack安装依赖需要手动安装吗

SaltStack试用笔记
虽然Salt被设计为能够连接多台服务器,但在本文中,你可以在一台服务器上完成这些操作。
使用你的包管理器来安装Salt,你可以根据你系统版本分支找到相关的安装手册(http://docs.saltstack.org/en/latest/topics/installation/index.html ),
你也需要sudo或者root权限,来安装和使用salt
使用包管理的好处或者从在线的源代码安装是一个无法结束的争论,根据你的系统版本分支,选择更好的安装方法。
假如你倾向于使用源代码来安装,你可以在Salt 项目Github版本库里找到最新的Salt源码文件(/saltstack/salt).
centos安装参考:/topics/installation/rhel.html
centos的官方软件库里面不包含saltstack包,但是在epel项目里面有包含saltstack包. epel 是一个对rhel软件仓库的扩展,把一些有用的,但是rhel库没包含的软件收集在一起做成的一个软件仓库.
因此首先在centos上面安装epel,以 32位的centos5 举例,其他版本以此类推
epel官网: http://fedoraproject.org/wiki/EPEL/zh-cn
根据当前版本(是cenos5还是6)选择安装包,注意这里不区分32bit还是64bit,两个版本i386和x86_64的rpm包的md5是一样的.
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
安装好epel库以后,就可以用下面的命令安装saltstack了
server安装:
yum install salt-master
chkconfig salt-master on
service salt-master start
cilent安装:
yum install salt-minion
chkconfig salt-minion on
service salt-minion start
—————————————————————————————————————————————————–
首先在客户端机器上配置文件类似zabbix的客户端:
vim /etc/salt/minion 添加:
master: 192.168.1.104 #指定服务端ip
id: 192.168.1.107_minion #指定本客户端在服务端上显示的名字
然后重启/etc/init.d/salt-minion restart
在服务端设备上:
查看还未授权的设备:
salt-key -L
授权指定客户端通过认证:
salt-key -a 192.168.1.107_minion
授权所有客户端通过认证:
salt-key -a ‘*’ 或者 salt-key -A
踢出指定客户端(客户端踢出后要重启salt-minion才能被服务端重新-L看到):
salt-key -d 192.168.1.107_minion
踢出所有客户端(客户端踢出后要重启salt-minion才能被服务端重新-L看到):
salt-key -d ‘*’ 或者 salt-key -D
详细命令可以查阅:
salt-key –help
—————————————————————————————————————————————————–
saltstack功能有两个:批量执行命令+批量安装配置
=======================================================================================================================
批量执行命令:
—————————-
全部设备执行:
salt ‘*’ test.ping
会得到如下信息:
[root@aaa txt]# salt ‘*’ test.ping
192.168.1.107_minion:
192.168.1.104_minion:
sudo salt ‘*’ cmd.run “uptime”
会得到如下信息:
[root@aaa txt]# sudo salt ‘*’ cmd.run “uptime”
192.168.1.107_minion:
03:09:50 up 1 day, 10:04, 4 users, load average: 0.00, 0.02, 0.00
192.168.1.104_minion:
23:47:06 up 10 days, 4:11, 4 users, load average: 0.00, 0.00, 0.04
—————————-
指定单独设备执行:
salt &#.1.107_minion’ cmd.run “/etc/init.d/nginx restart”
会得到如下信息:
[root@aaa txt]# salt &#.1.107_minion’ cmd.run “/etc/init.d/nginx restart”
192.168.1.107_minion:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Stopping nginx: [ OK ]
Starting nginx: [ OK ]
—————————-
指定组来执行:
你也可以根据你自己的需求,执行一些命令在特定的目标群组上。参考-G 参数,从官网文档中获取更多细节http://saltstack.org
=======================================================================================================================
批量安装配置:
在服务器端:
mkdir /etc/salt/
vim /etc/salt/master 添加下面三行,这样子就可以告诉Salt你的配置管理文件在哪里。根据你是如何安装Salt,有时你需要自己创建/srv/salt目录
file_roots:
- /srv/salt
基础配置文件也叫做Top文件,在/srv/salt目录下。我们来创建这个文件。这个文件提供了其它文件的映射。可以用于作为其它服务器的基础配置文件。
再次使用你最喜欢的编辑器,在/srv/salt目录创建一个top.sls文件。你可以把它作为指向不同目录的路线图。
vim /srv/salt/top.sls
vim /srv/salt/top.sls
- install_iftop
base语法告诉Salt这是基础配置文件,可以应用在所有机器上。通配符’*’的目标是所有机器。’- install_iftop’指令可以是任意值,运行你识别哪些质量可以使用。
再选择一些其它有用的配置。这个条目还指向一个特别的配置install_iftop,用于安装iftop。
vim /srv/salt/install_iftop.sls
- installed
- source: salt://txt/123
- require:
- pkg: iftop
第1-3行可以单独运行安装iftop的包,这里centos会调用yum去安装iftop的包,路通过命令看到客户端在后端执行yum
[root@dddddd ~]# ps -ef|grep yum
12 02:53 ? 00:00:01 /usr/bin/python2.4 /usr/bin/yum -y install iftop
0 02:53 pts/2 00:00:00 grep yum
第4-7行是指定服务端把/srv/salt/txt/123文件发布到客户端
第8-9行是指定下发配置文件之前检查客户端是否有iftop这个依赖包,服务端是不会把/srv/salt/txt/123文件发布到客户端的!
最后执行发布配置到所有设备:
salt ‘*’ state.highstate
也可以指定一台设备:
salt &#.1.107_minion’ state.highstate
=====================================================================================================================================================
—————————————————————————————————————————————————–
2015年十一月
9101112131415
16171819202122
23242526272829新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID335863空间积分0 积分22阅读权限10帖子精华可用积分22 信誉积分140 专家积分0 在线时间14 小时注册时间最后登录
白手起家, 积分 22, 距离下一级还需 178 积分
帖子主题精华可用积分22 信誉积分140 专家积分0 在线时间14 小时注册时间最后登录
论坛徽章:0
正打算用saltstack管理我的服务器,搜了下,几乎没人用?
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID空间积分0 积分12228阅读权限90帖子精华可用积分12228 信誉积分2161 专家积分0 在线时间2264 小时注册时间最后登录
大富大贵, 积分 12228, 距离下一级还需 7772 积分
帖子主题精华可用积分12228 信誉积分2161 专家积分0 在线时间2264 小时注册时间最后登录
认证徽章论坛徽章:16
有人用,认识一个朋友推荐给你?
一个良好的算法能够对性能起到关键作用,因此性能改进的首要点是对算法的改进。在算法的时间复杂度排序上依次是:
O(1) -& O(lg n) -& O(n lg n) -& O(n^2) -& O(n^3) -& O(n^k) -& O(k^n) -& O(n!)
UID空间积分0 积分86阅读权限10帖子精华可用积分86 信誉积分170 专家积分0 在线时间118 小时注册时间最后登录
白手起家, 积分 86, 距离下一级还需 114 积分
帖子主题精华可用积分86 信誉积分170 专家积分0 在线时间118 小时注册时间最后登录
论坛徽章:0
国内还是有人在用的,
我也正在用,昨天刚部署上线,还在学习摸索中
UID空间积分0 积分359阅读权限20帖子精华可用积分359 信誉积分1177 专家积分2 在线时间403 小时注册时间最后登录
稍有积蓄, 积分 359, 距离下一级还需 141 积分
帖子主题精华可用积分359 信誉积分1177 专家积分2 在线时间403 小时注册时间最后登录
论坛徽章:0
try Ansible
UID9709350空间积分0 积分66阅读权限10帖子精华可用积分66 信誉积分172 专家积分70 在线时间48 小时注册时间最后登录
白手起家, 积分 66, 距离下一级还需 134 积分
帖子主题精华可用积分66 信誉积分172 专家积分70 在线时间48 小时注册时间最后登录
论坛徽章:0
用的人少吧,大部分还是puppet和chef啥的吧
不过salt看着很牛逼的样子,针对特定需求啊,应该有他的市场的
UID9709350空间积分0 积分66阅读权限10帖子精华可用积分66 信誉积分172 专家积分70 在线时间48 小时注册时间最后登录
白手起家, 积分 66, 距离下一级还需 134 积分
帖子主题精华可用积分66 信誉积分172 专家积分70 在线时间48 小时注册时间最后登录
论坛徽章:0
vlinx 发表于
try Ansible
这个是啥?貌似又是一个新造出来的轮子?
UID335863空间积分0 积分22阅读权限10帖子精华可用积分22 信誉积分140 专家积分0 在线时间14 小时注册时间最后登录
白手起家, 积分 22, 距离下一级还需 178 积分
帖子主题精华可用积分22 信誉积分140 专家积分0 在线时间14 小时注册时间最后登录
论坛徽章:0
我已经开用saltstack,只是我没有过其他的运维软件,没有什么比较。感觉还行,比较易用。现在看到的缺点是运行命令时,完成前没任何提示,一些运行几分钟的命令让人有点晕。
UID空间积分0 积分153阅读权限10帖子精华可用积分153 信誉积分352 专家积分0 在线时间152 小时注册时间最后登录
白手起家, 积分 153, 距离下一级还需 47 积分
帖子主题精华可用积分153 信誉积分352 专家积分0 在线时间152 小时注册时间最后登录
论坛徽章:0
UID空间积分0 积分71阅读权限10帖子精华可用积分71 信誉积分233 专家积分0 在线时间81 小时注册时间最后登录
白手起家, 积分 71, 距离下一级还需 129 积分
帖子主题精华可用积分71 信誉积分233 专家积分0 在线时间81 小时注册时间最后登录
论坛徽章:0
& & 你说的没有反应的命令,是不是直接引用的shell命令??
UID265257空间积分0 积分700阅读权限20帖子精华可用积分700 信誉积分768 专家积分0 在线时间1192 小时注册时间最后登录
丰衣足食, 积分 700, 距离下一级还需 300 积分
帖子主题精华可用积分700 信誉积分768 专家积分0 在线时间1192 小时注册时间最后登录
论坛徽章:0
准备测试试用了...salt stack使用笔记之安装篇
编辑:admin 阅读(668次)用Saltstack的returners实现监控及执行结果回调 | 峰云就她了
1,218 views
这是以前在51cto写的文章,因为有了独立的博客,so 转了过来。没有saltstack基础的朋友,看下我以前的教程 saltstack 入门教程。。。。
那么大家在很多时候都用cmd.run跑命令,查看结果,然后根据返回的结果,做点你需要做的事情,比如把结果插入数据库,我们可以在页面中,看到他的执行的结果,状态,jobid等等。。。
关于监控,虽然zabbix的监控做的挺不错的,他的接口也很完全,我用过这个写过批量增加和批量删除的接口,挺不错的。
然而 如果咱们只是用来做一个临时的监控,又不想麻烦的用zabbix 做item action的麻烦过程。
最近爬虫很吊,那么问题来了,很多人都搜不到我的站点了。
这个时候 ,大家可以用用我的这个思路。&因为我这段时间在写saltstack的功能,现在做到日志的展示了。我突然发现可以做个临时的小监控啥的。 理由就像我刚才说的。。。
总之,就想临时搞搞数据监控,迅速实现大批量的监控。
用到的是&Saltstack Returners
Returners是minion返回数据到达后被调用的模块。不将返回数据传递给salt master,而是调用Returner模块来将数据发给其他服务,通常是数据库。Salt目前支持的returner,可以连接cassandra, mongo, redis和mysql. 也可以很容易的用Python脚本为其他服务写一个returner。 & & xiaorui.cc
官方的例子
实现的过程:
1 & 创建分组,或者直接用 * 表示全部主机
2 & 写个returner规则
3 & 写个modules规则
主要提2 &3 。。。。
这个是modules
我测试用的是 系统已经写过的cmd.run
大家可以根据自己的情况写
监控进程数
监控连接数
监控队列系统
监控邮件的待发队列,延迟队列
监控某种bug
那么下面的代码就是一个returners的结果通知的格式, 不管是用mail还是回调给mysql、redis、mongodb都是这样的用法。 最近被盗链的厉害~ &暂时先图片,等他们抓完了后,再上代码。。。
那么开始走起,saltutil.sync_all 主要是为了实现模块的下发同步
那我们可以在邮箱里面看到报警的邮件:
& & & &salt来实现快速的监控,需要大家有些saltstack的基础,不然有一头雾水的感觉。这篇文章标题是用returners做监控,其实更多的是表述他的用法。 &大家可以把这些都用在实战用。&
相关的文章
您可能也喜欢:
暂无相关产品我们的服务器,服务器上线后由 puppet 完成初始化和配置等一系列工作(比如,静态 IP 配置,DNS 设置,NFS/SAN 挂载,LDAP/Kerberos 登录,安全加固配置,内核参数优化,防火墙规则配置等等),等初始化完成后开始运行,运行一段时间后有一些需要自动和手动操作的任务(比如升级、重启、备份等),这时候我们这些临时任务。
所以从这里可以看到 Puppet 和 Fabric 其实是两个不同性质的工具,看下面的归类可能会更清楚一些。Puppet 和 Fabric 两个的工作其实可以由一个工具 SaltStack(或 AnsibleWorks)完成,减少一个工具的使用会减轻一点负担(学习工具的人力成本、安装和配置工具的时间成本等等)。
操作系统和软件的安装、配置、初始化等;
(Puppet, Chef, CFEngine, AnsibleWorks, SaltStack, …)
自动执行任务,比如定期备份、清除日志等;
(Fabric, AnsibleWorks, SaltStack, …)
手动执行任务,比如部署应用、升级、重启、检查和校验文件系统、增加用户等。
(Fabric, Rake, Func, Rundeck, AnsibleWorks, SaltStack, …)
采用 zeromq 消息队列进行通信,和 Puppet/Chef 比起来,SaltStack 速度快得多。还有一点我们喜欢 SaltStack 的地方是它是 Python 写的,比 Puppet/Chef 这些 Ruby 工具更接近我们的能力圈。
安装主控服务器(salt master)
和大多数类似工具一样,SaltStack 需要在一台机器(主控)上安装服务器端软件(SaltStack 称之为 salt master),在多台机器(受控)上安装客户端软件(SaltStack 称之为 salt minion)。在主控机器上给下属(受控)发命令,在受控机器上接受和执行上级(主控)的命令。
在 Ubuntu 上安装 salt master:
$ sudo add-apt-repository ppa:saltstack/salt
$ sudo apt-get update
$ sudo apt-get install salt-master
在 CentOS 6.x 上安装 salt master:
# rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# yum update
# yum install salt-master
安装受控客户端(salt minion)
在 Ubuntu 上安装 salt minion:
$ sudo add-apt-repository ppa:saltstack/salt
$ sudo apt-get update
$ sudo apt-get install salt-minion
在 CentOS 6.x 上安装 salt minion:
# rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# yum update
# yum install salt-minion
安装完 salt minion 后记得修改配置文件,让 salt minion 指向 salt master 服务器地址:
$ sudo vi /etc/salt/minion
# Set the location of the salt master server, if the master server cannot be
# resolved, then the minion will fail to start.
$ sudo restart salt-minion
在 master 上执行 salt-key list 就会看到有个
请求加入受控,执行 -a 接受请求后,主控和受控之间的信任关系就建立起来了,主控就可以任意 “摆布” 受控了:
# salt-key list
Accepted Keys:
Unaccepted Keys:
Rejected Keys:
# salt-key -a
The following keys are going to be accepted:
Unaccepted Keys:
Proceed? [n/Y]
执行命令的例子
在主控机器上执行一个命令,让所有受控机器执行 hostname 命令:
# salt '*' cmd.run "hostname"
在主控机器上执行一个命令,让所有受控机器上执行内建 test.ping 命令:
# salt '*' test.ping
还有一些内建命令可以尝试:
# salt '*' disk.usage
# salt '*' network.interfaces
执行状态的例子
开头的时候我们说了 SaltStack = Fabric + Puppet,上面 “执行命令的例子” 演示了 Fabric 类似的功能,这里要演示的是 Puppet 类似的功能,在主控上定义好系统配置应该有的状态,然后受控自动完成相应的操作和配置。
首先确定状态定义的文件应该放在什么地方,以下操作都在主控(salt master)上执行。检查 /etc/salt/master 文件的 file_roots 条目,默认是在 /srv/salt 下,如果没有这个目录还需要手动创建一个:
# vi /etc/salt/master
#file_roots:
- /srv/salt
# mkdir /srv/salt
比如我们想在所有受控机器上安装 vim 软件包,并使用自己定义的 vimrc 文件:
# vi /srv/salt/vim.sls
pkg.installed
/etc/vimrc:
file.managed:
- source: salt://vimrc
- mode: 644
- user: root
- group: root
# vi /srv/salt/vimrc
syntax enable
set textwidth=79
set shiftwidth=4
set tabstop=4
set expandtab
set softtabstop=4
set shiftround
set fileencodings=utf-8
set encoding=utf8
set tenc=utf8
强制执行这个状态:
# salt '*' state.sls vim
再来一个例子,参考 “” 一文,我们想在所有受控机器上安装 Glances,如何实现呢?
# vi /srv/salt/glances.sls
python-pip:
pkg.installed
build-essential:
pkg.installed
python-dev:
pkg.installed
pip.installed:
- require:
- pkg: python-pip
强制执行这个状态:
# salt '*' state.sls glances
----------
State: - pip
Package was successfully installed
Glances==1.7.1: Installed
(10 Comments) 分类:

我要回帖

更多关于 saltstack源码安装 的文章

 

随机推荐