Ansible 是一个自动化配置管理工具 (Automate configure management)。用 python 编写,所以安装方式一般有以下几种:
pip
安装
1
|
|
MacOS 用户可以选择使用 homebrew
安装
1
|
|
但这两种方法都不可避免将「污染」系统的 python 环境。所以本文主要介绍如何绿色安装 Ansible。
安装 Virtualenv
不污染系统的关键在于虚拟化 python 的环境,所以需要准备 virtualenv。
这里偷懒选择使用 pip 安装,如果连 virtualenv 也不想装在系统级别也是可以的,就不在这里介绍了。
1
|
|
下载 ansible
1 2 |
|
安装
1 2 |
|
A little trick
这个时候使用 virtualenv 激活当前目录的 python 环境,其实 bin/ansible
就已经可以工作了。
但我们还希望将 ansible 命令加在系统的 PATH 里,这就需要一些小技巧。简单来说需要自己准备一个脚本,脚本的内容如下:
1 2 3 4 5 6 7 8 9 |
|
$HOME/apps/ansible/hacking/env-setup
是 ansible 为 hacker 准备的一个脚本,设置一些环境变量。其中 $HOME/apps/ansible
是 ansible 的根目录。
${0##/*/}
比较有趣,作用是正则匹配 /*/
然后把匹配到的部分从第 0 个参数(即命令本身)中删除。关于 bash 参数,更详细可以看[1]。
$@
则比较常见,是 bash 拿到的除命令名之外的所有参数。
其实这个脚本就是一个 wrapper,作用如下:
- 设置相关环境变量
- 激活 ansible 下的 python 环境
- 将收到的所有命令都转发给
$ANSIBLE_HOME/bin
下的相同命令执行
假设 $HOME/bin
在 PATH 中,设置几个软链就全部搞定了。
1 2 3 |
|