文档章节

为什么说写“安装指南”类博客的程序员是懒惰的

jianglibo
 jianglibo
发布于 2016/04/12 13:54
字数 593
阅读 42
收藏 2

安装指南无法精确

为什么我根据hadoop的官方指南安装群集困难重重,但是执行yum install -y tcl tcllib却如此轻松呢?

这不仅仅是一个简单一个复杂的问题。简单+简单+简单就变成复杂了,或者说复杂=简单+简单...+简单。这充分说明一个问题,安装指南无法精确,脚本是精确的。

把你安装hadoop的整过过程脚本化,保存在你的github库中,当你需要的时候,执行一个(假想的脚本):

install-my-hadoop -host=192.168.33.50,51,52,53,54 -profile=onmydesktop.yml install

如果这样的话,还有必要写安装指南吗?你的每一个步骤都写在脚本里,加上适当的comment,还有比这更好的指南吗?

结论:安装指南只需要一份,那就是软件作者给出的一份。

只写安装指南,不写脚本,最终会更浪费你的时间

大概几个月之前,我根据apache的官网指南,安装过hadoop,什么zookeeper,hbase的一大堆,找找自己的博客说不定还能看到几篇安装指南呢!

几个月过去了,中间因为有其它事情处理,部分虚拟机销毁了,现在再叫我部署一个,实在是提不起兴趣来,以前积累的经验几乎毫无用处。

基于这种情况,我决心不再懒惰,将安装过程脚本化。

和你分享我的脚本结果

我在github的新建一个项目easy-installer。它就是安装程序的脚本话的结果。

将java安装到两台机器上:

./easy-installer.tcl --host=192.168.33.50,51 java install

安装redis:

./easy-installer.tcl --host=192.168.33.50 redis install

安装mysql-cluster:

./easy-installer.tcl --host=192.168.33.50,51,52,53 --profile=local-profiel.yml mysql-cluster install config mgmstart ndbdstart mysqlstart

上述命令将在50,51,52,53四台机器上安装一个mysql cluster,命令结束之后,cluster已经在运行了。

和我分享你的安装脚本

如果你刚刚写好一个安装指南,那么你的记忆还在,可以和我一起将你的安装过程脚本化。

© 著作权归作者所有

共有 人打赏支持
jianglibo

jianglibo

粉丝 43
博文 57
码字总数 34649
作品 3
奉化
高级程序员
【外刊IT评论】愚蠢且能干

有个人曾经问拿破仑是如何给士兵指派任务的。拿破仑回答说这很简单:士兵要么聪明要么愚蠢,要么懒惰要么精力充沛。 聪明且精力充沛的我让他当战地指挥官。他知道该做什么而且能召集队伍去做...

红薯
2011/01/07
1K
15
你最喜爱的编程语言不够好

我的《Python is important》这 篇博客引来如此多的评论,让我颇为意外。大多数的评论是正面的,但同时多少也都带点不太积极的色彩。我发现,这些评论反映出的一个很突出的问题是,程序员 如...

景德真人
2012/03/27
5K
29
为什么优秀的程序员既懒又笨

我认识到一个非常有悖常理的现象,优秀的程序员都是即懒又傻的。 因为懒,他才会写出各种各样的工具来替自己干活。因为懒,他才会想办法避免去写无聊重复的代码——因此避免的代码的冗余,消...

oschina
2013/08/05
14K
59
程序员应该避免的5种代码注释

摘要: 我认识到一个非常有悖常理的现象,优秀的程序员都是即懒又傻的。因为懒,他才会写出各种各样的工具来替自己干活。因为懒,他才会想办法避免去写无聊重复的代码——因此避免的代码的冗余...

丨小丶牧灬
2015/08/21
199
1
最让程序员懊恼的 10 件事

10. 注释说明“是什么”,而不是“为什么” 入门级编程课程教导学生要学会频繁且尽早地注释。不可否认在学习编程的起步阶段这方法的确是相当有效的(即使看到最简单的代码行都像天书)。然而...

oschina
2014/07/25
10.7K
51

没有更多内容

加载失败,请刷新页面

加载更多

cacti监控安装

cacti是用PHP实现的一个软件,它用snmp服务获取数据,然后用rrdtool存储和更新数据,并生成图表展示。比较适合用于交换机、路由器的网络监控,插件众多,可图示化显示网络状况。 cacti官方推...

hiwill
10分钟前
0
0
shell特殊符号、cut、sort、uniq、wc、tee、tr、split命令

10月15日任务 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 cut 命令 cut作用:截取字符串 用法如下:cat /etc/passwd |head -2 |cut -d ...

hhpuppy
39分钟前
1
0
Springboot实现filter拦截token验证和跨域

背景 web验证授权合法的一般分为下面几种 1使用session作为验证合法用户访问的验证方式 使用自己实现的token 使用OCA标准 在使用API接口授权验证时,token是自定义的方式实现起来不需要引入其...

funnymin
今天
3
0
linux使用ntfs-3g操作ntfs格式硬盘

Linux内核目前只支持对微软NTFS文件系统的读取。 NTFS-3G 是微软 NTFS 文件系统的一个开源实现,同时支持读和写。NTFS-3G 开发者使用 FUSE 文件系统来辅助开发,同时对可移植性有益。 安装 ...

linuxprobe16
今天
1
0
kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部