saltstack 文件服务器,自动化运维神器之saltstack (二)文件服务器

之前写过一片博文介绍了saltstack的安装配置,由于最近忙着办理离职,就没有更新了,对不起自己,说好的要坚持下去的。这篇博文准备记录一下saltstack作为文件服

之前写过一片博文介绍了saltstack的安装配置,由于最近忙着办理离职,就没有更新了,对不起自己,说好的要坚持下去的。这篇博文准备记录一下saltstack作为文件服务器,从master向minions分发文件的功能。我们知道,类似于hadoop、hbase、zookeeper这些与分布式系统相关的组件在安装配置的时候,往往是一个节点上修改好配置文件后,然后用scp远程拷贝到其他节点上去,如果你有10个节点的话,那么同一条远程拷贝的命令需要执行多次,显然不是一个好办法。那么问题来了,自动化运维之远程分发文件到底哪家强?哈哈,自然是神器saltstack啦!我们需要借助saltstack来实现从master端向minions推送文件的需求。

Saltstack内置了一个简单的文件服务器用于master分发文件给minions,这个文件服务器是基于zeroMQ消息队列实现的,客户端对文件服务器的操作全部封装在了cp这个模块中。

首先看环境:

hadoop0.updb.com    192.168.0.100    OS:CentOS 6.5        Role:master

uadoop2.updb.com    192.168.0.202    OS:CentOS 6.5        Role:minion

uadoop3.updb.com    192.168.0.203    OS:CentOS 6.5        Role:minion

在开始saltstack的配置管理之前,要首先指定saltstack所有状态文件的根目录,在master上做如下操作## 首先修改master的配置文件,指定根目录,注意缩进全部使用两个空格来代替Tab(python规范)

[root@hadoop0 ~]# vi /etc/salt/master

file_roots:

base:

- /srv/salt

dev:

- /srv/salt/dev

## 确定指定的目录是否存在,如果不存在,需要手动来创建目录

[root@hadoop0 ~]# ls /srv/salt/ -ld

drwxr-xr-x 2 root root 4096 Nov  6 23:54 /srv/salt/

[root@hadoop0 ~]# ls /srv/salt/dev/ -ld

drwxr-xr-x 2 root root 4096 Nov  7 00:36 /srv/salt/dev/

## 重启master服务

[root@hadoop0 ~]# /etc/init.d/salt-master  restart

Stopping salt-master daemon:                               [  OK  ]

Starting salt-master daemon:                               [  OK  ]

首先介绍cp.get_file,用来从master端下载文件到minion的指定目录下,如下## 在master上创建测试用的文件

[root@hadoop0 ~]# echo 'this is test file with module of cp.get_file!' > /opt/getfile.txt

## 拷贝测试文件到master配置的根目录下

[root@hadoop0 ~]# cp /opt/getfile.txt /srv/salt/

## 在master执行文件的分发

[root@hadoop0 ~]# salt 'uadoop2' cp.get_file salt://getfile.txt /opt/getfile.txt

uadoop2:

/opt/getfile.txt

## 分发成功,在minion上查看文件是否已经发送到uadoop2上了

[root@uadoop2 ~]# cat  /opt/getfile.txt

this is test file with module of cp.get_file!

使用cp.get_file进行文件的分发时时也可以指定是否对分发的文件进行压缩,如下## 使用gzip的方式进行压缩,数字越大,压缩率就越高,9代表最大的压缩率

[root@hadoop0 ~]# salt 'uadoop2' cp.get_file salt://getfile.txt /opt/getfile.txt gzip=9

uadoop2:

/opt/getfile.txt

## 分发成功,在minion上查看文件是否已经发送到uadoop2上了

[root@uadoop2 ~]# cat  /opt/getfile.txt

this is test file with module of cp.get_file!

当minion上的目标目录不存在时,可以使用makedirs参数来创建目标目录,如下[root@hadoop0 ~]# salt 'uadoop2' cp.get_file salt://getfile.txt /opt/test/getfile.txt makedirs=True

uadoop2:

/opt/test/getfile.txt

## 分发成功,在minion上查看文件是否已经发送到uadoop2上了

[root@uadoop2 ~]# cat /opt/test/getfile.txt

this is test file with module of cp.get_file!

在开始下一个示例之前,先介绍一下grains,这个接口的作用是在minion端的minion服务启动时,调用这个接口,收集minion端的信息,这些信息数据可以在salt的其他模块中直接使用,需要注意的是,这个接口只在minion端的minion服务启动时被调用一次,所以收集的数据是静态的,不会改变的,除非你重启了minion端的服务,关于这点,官方文档是这样说明的:    Grains Static bits of information that a minion collects about the system when the minion first starts.

The grains interface is made available to Salt modules and components so that the right salt minion commands are

automatically available on the right systems.

It is important to remember that grains are bits of information loaded when the salt minion starts, so this information

is static. This means that the information in grains is unchanging, therefore the nature of the data is static. So grains

information are things like the running kernel, or the operating system.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值