将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
广告
将在 10 秒后关闭
bannerAds