关于 六月, 2013 的文章

OpenLDAP统一认证 之 (0)什么是OpenLDAP

目录结构
OpenLDAP统一认证 之 (0)什么是OpenLDAP
OpenLDAP统一认证 之 (1)安装配置OpenLDAP
OpenLDAP统一认证 之 (2)使用OpenLDAP管理Linux系统用户
OpenLDAP统一认证 之 (3)OpenLDAP与Kerberos的集成
OpenLDAP统一认证 之 (4)OpenLDAP的备份与还原
OpenLDAP统一认证 之 (5)OpenLDAP的主从复制方案

本文内容
OpenLDAP统一认证 之 (0)什么是OpenLDAP

参考资料
http://www.openldap.org/doc/admin24/intro.html
http://baike.baidu.com/view/159263.htm

前段时间,为了提升Hadoop集群的访问安全,集成了Kerberos认证系统,随后又接到一项任务,那就是将Kerberos认证系统再集成到OpenLDAP统一认证服务中,并学习如何通过OpenLDAP来管理Linux系统用户。
这样做的目的,其实就是为了实现用户账户与权限的统一管理,在服务器数量较多(超过100台)且不断增长的情况下,效果还是很不错的。
在整个学习过程中,我参阅了很多的资料,经历了从对各种概念的不熟悉到最后成功的应用到测试环境中,学到了不少的东西,本着开源分享的精神,我将整个学习的过程整理成一个系列的文档,分享给大家。

下面进入正文
首先应该明确的是:什么是LDAP?
LDAP,它的全称为“轻量级目录访问协议”,它起源于X.500目录,其被接受作为提供世界范围的目录服务的一种国际标准。

那么,什么是“目录”呢?
目录是一种专门的数据库,它服务于各种应用程序,包括LDAP(轻量级目录访问协议)目录和基于X.500的目录。
这些目录都是通用的标准的目录,就像大多数人熟悉的各种各样的目录,像电话簿、黄页,电视指南、购物目录和图书馆卡片目录。听起来像是数据库一样,但“目录”与数据库并不相同,目录的大部分操作为读操作。
假如你的应用程序要写大量的数据,你应该考虑选择使用数据库来实现。目录仅支持相对简单的事务处理。相反,数据库被设计成处理大量的各种各样的事务处理。假如你的应用要求这种重负荷的事务支持,你该选择数据库而不是目录。
在另一方面,假如你的应用不要求这样的大负荷事务处理,而是偶尔的写一些简单的事务信息。这时,目录是理想的选择。它会更有效,更简单。
阅读全文 »

,

10 Comments

给23岁的自己一些答案

在我23岁的时候,我曾因为迷惘和虚度年华,而写下了一堆的疑问,提问的对象是29岁的自己。
然而,时光飞逝,无意间发现,自己已经29岁了。再次看到当初这些问题的时候,内心百感交集。

此刻,就让我给23岁的自己一些答案吧。

我就快满23岁了,我在6年之后(29岁)能达到什么高度?
那时候
我的专业技能如何?
我的Linux、C、C++、Python、网络、Windows、数据库……
- 在Linux方面,你坚持下去了,学到了不少很棒的技术,其中包括Hadoop,Chef,Puppet,Salt,CloudStack,Zabbix等,有了很强的自学能力,技术上有自信了,敢不要脸的自称为“资深”系统管理员和运维工程师了;
- C、C++方面毫无建树,但是你在Python方面,已经学到了一点皮毛,能自己写点小工具了,因为你结识了一位很好的朋友,他是一位Python牛人,你是跟着他学的;
- 网络方面,你具备了一定的动手能力,因为你以前同时负责了公司和项目的网络维护,能够理解基本的路由规则,简单的网络设计和配置三层交换机;不过,那种专业的网络管理工作,涉及到更深层次的网络知识,你还是搞不定的;
- 在Windows方面,你一直没什么兴趣,因此也仅仅停留在一些基础的系统配置和安全优化上;
- 数据库方面,你懂一点Oracle的维护,MySQL方面也是,还用过Redis,MongoDB这些比较新的开源软件,不过都是停留在运维层面,离深层次的维护,优化,也就是专业DBA的程度,还有不少的差距;

我的英语能力如何?
我的口语水平如何?我阅读专业文档的能力如何?我是否结识了一些外国朋友?
- 在08年的时候,你一时冲动,把2万元的积蓄全部花在了METEN的英语培训上,也就是那一时的冲动,让你有机会去学口语,见识了很多优秀的人,她们中大部分都是女人,你还结识了一些外教;
- 在那两年里,你基本上每天都充满兴趣并快乐的去上1-2小时的会话课,坚持了半年多以后,听力长进很大,也敢开口说话了,在剩下的一年多时间里,你对自己的口语表达越来越有自信了,也凭借着这方面的能力通过了一家外企CTO在Skype上的面试;
- 现在,你在第二家外企里面上班了,待遇还算可以。
阅读全文 »

29 Comments

Salt实战之 自动安装部署MooseFS

暮然回首,我做运维已经有六年多了,从最开始那个一无所知的菜鸟,到现在能够胸有成竹的管理公司几百台服务器,中间走了不少的弯路。
就拿批量管理服务器这块儿来说吧,几年前自己只会Shell脚本,在服务器不多的时候,感觉还忙的过来,到后来服务器越来越多的时候就不行了。写了很多的脚本放到计划任务中定期执行,能解决一部分工作,但效率还是很低下,因为服务器太多了,每次脚本有变动就需要在所有服务器上都更新一遍,非常痛苦,后来我学会了用expect来处理交互,但效率依然很低下,等脚本自动登录完所有的机器并执行完相关命令,至少30分钟过去了。
后来我加入了一些技术群,了解到Func,Puppet以及Chef这样的工具,并试着使用它们来管理服务器,效果真的很好。

就在几个星期以前,在Puppet群里面,我听到了Salt这个词,Salt群主“绿肥”天天在里面“拉客”,号称是Func+Puppet,用Python实现的,由于我对Python很有好感,也还算有点基础,于是就试着用了用Salt。
学一个东西最快的方法就是用它去解决现有的实际问题,我选择了使用Salt来自动安装部署一套MooseFS分布式文件系统,结果,我花了1天的时间就完成了整个工作,同时对Salt的好感也超越了Puppet,说实话,我现在非常愿意将线上所有Puppet的代码都用Salt来重写一遍,其中包括整个Hadoop集群的自动部署。

好了,废话不多说,下面开始讲解整个实战过程。

Salt其实也仅仅只是一个工具,解决问题的关键是我们的思路,正比如我能够用Salt来实现自动安装部署MooseFS,那么前提肯定是我了解手动安装部署MooseFS的整个过程。因此,建议大家先阅读我的《在CentOS上安装部署MooseFS分布式文件系统》这篇文章,了解如何通过手动的方式来安装部署MooseFS。

接下来,我们首先要对Salt的基础进行一系列的学习,这里,我强烈推荐官网的Tutorial:
http://docs.saltstack.com/topics/tutorials/walkthrough.html
在完成了整个Tutorial之后,通过Module Index页面,我们能够快速查阅Salt所有模块的功能与用法:
http://docs.saltstack.com/py-modindex.html

我的整个Salt代码结构如下:
$ tree

.
├── pillar
│   ├── moosefs
│   │   └── params.sls
│   ├── _salt
│   │   └── params.sls
│   ├── schedules
│   │   └── params.sls
│   ├── top.sls
│   └── users
│       └── lists.sls
├── README.md
├── salt
│   ├── moosefs
│   │   ├── files
│   │   │   └── index.html
│   │   ├── states
│   │   │   ├── chunkserver.sls
│   │   │   ├── client.sls
│   │   │   ├── common.sls
│   │   │   ├── master.sls
│   │   │   └── metalogger.sls
│   │   └── templates
│   │       ├── httpd.conf
│   │       ├── mfschunkserver.cfg
│   │       ├── mfsexports.cfg
│   │       ├── mfshdd.cfg
│   │       ├── mfsmaster.cfg
│   │       └── mfsmetalogger.cfg
│   ├── _roles
│   │   ├── backup.sls
│   │   ├── datanode.sls
│   │   └── master.sls
│   ├── _salt
│   │   ├── states
│   │   │   └── minion.sls
│   │   └── templates
│   │       └── minion
│   ├── top.sls
│   └── users
│       └── states
│           └── create.sls
└── tools
    ├── install_salt_minion.sh
    └── tips.txt

阅读全文 »

, , ,

1 Comment