将CentOS 6.4调整为兼容Ansible 1.9.1
导言
在我的工作中,我想要在 CentOS 6.4 上运行 Ansible 1.9.1(当时最新的稳定版本),但是遇到了各种问题,下面我将记录下我是如何解决这些问题的。
这是什么问题?
我在 yum 中安装的 Ansible 版本是1.1。因此我尝试使用 pip 安装最新版本,但在安装依赖库 pycripto2.6 时遇到了问题,无法成功安装。
做过的事情 (zuò guò de shì
总的来说
为了使用Ansible 1.9,需要安装pycrypto2.6等依赖库,为了安装pycrypto2.6,需要gmp5和python-devel。
操作过程
首先安装gmp5。
我按照这个办法去做了。
安装 python-devel
如果没有这个的话,就无法安装pycrypto2.6(可能会导致本机扩展构建失败)。
$ sudo yum install python-devel
安装 pip
如果没有使用pip,安装Ansible及其依赖库(Python类库)会很麻烦。
$ sudo yum install python-pip
安装 Ansible 的依赖库
使用sudo pip install命令安装以下内容。
-
- paramiko
-
- jinja2
-
- PyYAML
-
- setuptools
- pycrypto
或许可以不要它。包含旧版本的是从一开始就需要使用–upgrade选项。
这里的工作记录没有写得很详细,所以有些模糊。
不过,上述的都是 Ansible 的依赖库,即使都安装最新版本也不会有问题。
安装Ansible程序
终于到了这里。
$ sudo pip install ansible
可以通过以下命令来确认安装情况。
如果能确认版本为1.9.1,并且所使用的命令已经添加到路径中,就可以了。
$ ansible --version
$ which ansible-playbook
$ which ansible-galaxy
用 playbook 写出来的话,应该是这样的感觉。
---
# gmp5 がないと pycrypto2.6 が入らない
- name: gmp5 のダウンロード
get_url: >
url=ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.5.tar.bz2
dest=/usr/local/src/gmp-5.0.5.tar.bz2
- name: gmp5 の解凍
shell: >
bzip2 -dc gmp-5.0.5.tar.bz2 | tar xvf -
chdir=/usr/local/src
creates=/usr/local/src/gmp-5.0.5
# オプションは /usr/local 配下へのインストールと C++ サポートの有効化
- name: gmp5 の configure
command: >
./configure --prefix=/usr/local --enable-cxx
chdir=/usr/local/src/gmp-5.0.5
creates=/usr/local/src/gmp-5.0.5/Makefile
- name: gmp5 の make
command: >
make
chdir=/usr/local/src/gmp-5.0.5
creates=/usr/local/src/gmp-5.0.5/libgmpxx.la
- name: gmp5 のインストール
command: >
make install
chdir=/usr/local/src/gmp-5.0.5
creates=/usr/local/lib/libgmpxx.la
# これがないと pycrypto2.6 が入らない
- name: python-devel のインストール
yum: >
name=python-devel
state=latest
# これがないと新しい ansible や pycrypto 等を入れるのが大変
- name: pip のインストール
yum: >
name=python-pip
state=latest
- name: ansible に必要な python ライブラリをインストール
pip: >
name={{ item }}
state=latest
with_items:
- paramiko
- jinja2
- PyYAML
- setuptools
- pycrypto
- name: ansible のインストール
pip: >
name=ansible
version=1.9.1