2014年11月16日星期日

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

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
自动化运维神器之saltstack (二)文件服务器  阅读原文»

用户名:quenlang 文章数:15 评论数:21
访问量:9203:482:278:2 注册日期:2012-04-10

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

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

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

首先看环境:

hadoop0.updb.com192.168.0.100OS:CentOS 6.5Role:master

uadoop2.updb.com192.168.0.202OS:CentOS 6.5Role:minion

uadoop3.updb.com192.168.0.203 OS:CentOS 6.5Role:minion

在开始saltstack的配置管理之前,要首先指定saltstack所有状态文件的根目录,在master上做如下操作

##首先修改master的配置文件,指定根目录,注意缩进全部使用两个空格来代替Tab(python规范)
[root@hadoop0~]#vi/etc/salt/master
##确定指定的目录是否存在,如果不存在,需要手动来创建目录
[root@hadoop0~]#ls/srv/salt/-ld
drwxr-xr-x2rootroot4096Nov623:54/srv/salt/
[root@hadoop0~]#ls/srv/salt/dev/-ld
drwxr-xr-x2rootroot4096Nov700:36/srv/salt/dev/
[root@hadoop0~]#/etc/init.d/salt-masterrestart
Stoppingsalt-masterdaemon:[OK]
Startingsalt-masterdaemon:[OK]

首先介绍cp.get_file,用来从master端下载文件到minion的指定目录下,如下

##在master上创建测试用的文件
[root@hadoop0~]#echo'thisistestfilewithmoduleofcp.get_file!'>/opt/getfile.txt
##拷贝测试文件到master配置的根目录下
[root@hadoop0~]#cp/opt/getfile.txt/srv/salt/
##在master执行文件的分发
[root@hadoop0~]#salt'uadoop2'cp.get_filesalt://getfile.txt/opt/getfile.txt
/opt/getfile.txt
##分发成功,在minion上查看文件是否已经发送到uadoop2上了
[root@uadoop2~]#cat/opt/getfile.txt
thisistestfilewithmoduleofcp.get_file!

使用cp.get_file进行文件的分发时时也可以指定是否对分发的文件进行压缩,如下

##使用gzip的方式进行压缩,数字越大,压缩率就越高,9代表最大的压缩率
[root@hadoop0~]#salt'uadoop2'cp.get_filesalt://getfile.txt/opt/getfile.txtgzip=9
/opt/getfile.txt
##分发成功,在minion上查看文件是否已经发送到uadoop2上了
[root@uadoop2~]#cat/opt/getfile.txt
thisistestfilewithmoduleofcp.get_file!

当minion上的目标目录不存在时,可以使用makedirs参数来创建目标目录,如下

[root@hadoop0~]#salt'uadoop2'cp.get_filesalt://getfile.txt/opt/test/getfile.txtmakedirs=True
/opt/test/getfile.txt
##分发成功,在minion上查看文件是否已经发送到uadoop2上了
[root@uadoop2~]#cat/opt/test/getfile.txt
thisistestfilewithmoduleofcp.get_file!

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

GrainsStaticbitsofinformationthataminioncollectsaboutthesystemwhentheminionfirststarts.
ThegrainsinterfaceismadeavailabletoSaltmodulesandcomponentssothattherightsaltminioncommandsare
automaticallyavailableontherightsystems.
linux系统优化加固  阅读原文»

每日博报 精彩不止一点关闭
linux系统优化加固

本文系统:

[root@xxxxxx~]#cat/etc/issue
RedHatEnterpriseLinuxServerrelease5.8(Tikanga)
[root@xxxxxx~]#uname-a
Linuxxxxxxx2.6.18-308.el5#1SMPFriJan2717:17:51EST2012x86_64x86_64x86_64GNU/Linux

优化一、/etc/security/limits.conf

优化二、/etc/sysctl.conf

1、/etc/security/limits.conf

limits.conf的后端是这样工作的:limits.conf是pam_limits.so的配置文件,然后/etc/pam.d/下的应用程序调 用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个 对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。

Tips:当用户登录主机,会调用pam_limits.so

cat/etc/pam.d/login
sessionrequired/lib64/security/pam_limits.so

1.1、

pam_limits.so模块的主要功能是限制用户会话过程中对各种系统资源的使用情况。缺省情况下该模块的配置文件是/etc/security/limits.conf。而该配置文件的基本格式实际上是由4个字段组成的表,其中具体限制格式:

username|@groupname type resource limit

username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。

type:有 soft,hard 和 -,

soft 指的是当前系统生效的设置值。

hard 表明系统中所能设定的最大值。

soft 的限制不能比har 限制高。

用 - 就表明同时设置了 soft 和 hard 的值。

resource:

- core - 限制内核文件的大小
- date - 最大数据大小
- fsize - 最大文件大小
- memlock - 最大锁定内存地址空间
- nofile - 打开文件的最大数目
- rss - 最大持久设置大小
- stack - 最大栈大小
- cpu - 以分钟为单位的最多 CPU 时间
- noproc - 进程的最大数目
- as - 地址空间限制
- maxlogins - 此用户允许登录的最大数目
- maxsyslogins - 用户登入最大数目
- priority - 用户进程优先级(负数值)
- locks - 最大locks文件最值
- sigpending - 最大数量的等待信号

- msgqueue - postfix消息队列最大内存使用空间
- nice - 允许使用最大"好心值"
- rtprio - 无特权进程中最大实际优及级

Tips:
要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。
查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so

1.2、主机参考配置:

#<domain><type><item><value>
#*softcore0
#*hardrss10000
#@studenthardnproc20
#@facultysoftnproc20
#@facultyhardnproc50
#ftphardnproc0
#@student-maxlogins4
*softcoreunlimited
*hardcoreunlimited
*softfsizeunlimited
*hardfsizeunlimited
*softdataunlimited
*harddataunlimited
*softnproc1048756
*hardnproc1048756
*softstackunlimited
*hardstackunlimited
*softnofile1048576
*hardnofile1048576
*hardsigpending1056639
*softsigpending1056639

阅读更多内容

没有评论:

发表评论