摘要: 2016年2月23日,学习,分析ansible代码 ansible是一种运维中使用的批量部署的工具,它本身是一种框架,具体的部署和架构分析,下面这篇文章讲的不错。 http://os.51cto.com/art/201409/451927_all.htm 首先分析主文件ansible,代码和注释如下: 1、 from __future__ import (absolute_import, di... 阅读全文
posted @ 2016-02-23 10:15 思路风暴 阅读(2528) 评论(0) 推荐(0) 编辑
摘要: 又是一个比较长的函数,是用来检查文件权限,目录条件的。具体代码如下:check_env(){ # Check user privilege. #检查用户权限 check_user root # Check FQDN hostname. #检查主机名是否符合规则 c... 阅读全文
posted @ 2015-10-26 11:11 思路风暴 阅读(839) 评论(0) 推荐(0) 编辑
摘要: 函数位置,conf/core,具体代码如下:check_pkg(){ # Usage: check_pkg # It means: owns #定义了2个位置参数 cmd="$1" pkg="$2" #判断CMD参数的值是否可以执行 for i in... 阅读全文
posted @ 2015-10-23 09:40 思路风暴 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 这几个函数属于环境准备类,其实在写类似的脚本时,检查环境比较重要,这样可以防止有些环境不具备的情况报错,第一个函数prepare_dir函数,检测目录的,具体代码如下:prepare_dirs(){ #创建必要的目录,此处会输出到安装过程中 ECHO_DEBUG "Creating ne... 阅读全文
posted @ 2015-10-20 10:19 思路风暴 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 作者在引入conf/global 文件时,就已经对操作系统的类型进行判断,同时也对DISTRO进行了赋值。部分代码,如图:显然文件里的KERNEL_NAME的值就是判断完成的操作系统,具体分析该值是如何得到的。就是通过命令“uname –s | tr ‘[a-z]’ ‘[A-Z]’得到的,不过作者在... 阅读全文
posted @ 2015-10-15 11:57 思路风暴 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 经过上面的一系列分析后,进入到获取安装包的步骤,作者在此处单独写了一个脚本,get_all.sh,我们继续分析这个脚本_ROOTDIR="$(pwd)"CONF_DIR="${_ROOTDIR}/../conf". ${CONF_DIR}/global. ${CONF_DIR}/core. ${CO... 阅读全文
posted @ 2015-10-14 11:01 思路风暴 阅读(755) 评论(0) 推荐(0) 编辑
摘要: iredmail是一套以postfix为核心的整合邮件系统的安装脚本,可以达到快速部署邮件服务器的目的。为了让自己不遗忘shell的语法,所以闲来无事,学习一下他的代码。我从官网下载他的最新版,解压后,结构如下:iRedMail.sh 是开始安装的启动文件,执行bash iRedMail.sh 后就... 阅读全文
posted @ 2015-10-13 10:07 思路风暴 阅读(588) 评论(0) 推荐(0) 编辑