1. 程式人生 > >ansible安裝方法

ansible安裝方法

linux 默認 沒有 clone 運行 tag 分發 limit 新版

一 需要安裝些什麽

Ansible默認通過 SSH 協議管理機器.

安裝Ansible之後,不需要啟動或運行一個後臺進程,或是添加一個數據庫.只要在一臺電腦(可以是一臺筆記本)上安裝好,就可以通過這臺電腦管理一組遠程的機器.在遠程被管理的機器上,不需要安裝運行任何軟件,因此升級Ansible版本不會有太多問題.

二 ansible版本選擇

因為Ansible可以很簡單的從源碼運行,且不必在遠程被管理機器上安裝任何軟件,很多Ansible用戶會跟進使用開發版本.

Ansible一般每兩個月出一個發行版本.小bugs一般在下一個發行版本中修復,並在穩定分支中做backports.大bugs會在必要時出一個維護版本,不過這不是很頻繁.

若你希望使用Ansible的最新版本,並且你使用的操作系統是 Red Hat Enterprise Linux (TM), CentOS, Fedora, Debian, Ubuntu,我們建議使用系統的軟件包管理器.

另有一種選擇是通過”pip”工具安裝,”pip”是一個安裝和管理Python包的工具.

若你希望跟進開發版本,想使用和測試最新的功能特性,我們會分享如何從源碼運行Ansible的方法.從源碼運行程序不需要進行軟件安裝.

三 對管理主機的要求

目前,只要機器上安裝了 Python 2.6 或 Python 2.7 (windows系統不可以做控制主機),都可以運行Ansible.

主機的系統可以是 Red Hat, Debian, CentOS, OS X, BSD的各種版本,等等.

自2.0版本開始,ansible使用了更多句柄來管理它的子進程,對於OS X系統,你需要增加ulimit值才能使用15個以上子進程,方法 sudo launchctl limit maxfiles 1024 2048,否則你可能會看見”Too many open file”的錯誤提示.

四 對客戶端主機的要求

通常我們使用 ssh 與托管節點通信,默認使用 sftp.如果 sftp 不可用,可在 ansible.cfg 配置文件中配置成 scp 的方式. 在托管節點上也需要安裝 Python 2.4 或以上的版本.如果版本低於 Python 2.5 ,還需要額外安裝一個模塊:

python-simplejson

說明三點:

1、沒安裝python-simplejson,也可以使用Ansible的”raw”模塊和script模塊,因此從技術上講,你可以通過Ansible的”raw”模塊安裝python-simplejson,之後就可以使用Ansible的所有功能了.

2、如果托管節點上開啟了SElinux,你需要安裝libselinux-python,這樣才可使用Ansible中與copy/file/template相關的函數.你可以通過Ansible的yum模塊在需要的托管節點上安裝libselinux-python.

3、Python 3 與 Python 2 是稍有不同的語言,大多數Python程序還不能在 Python 3 中正確運行.一些Linux發行版(Gentoo, Arch)沒有默認安裝 Python 2.X 解釋器.在這些系統上,你需要安裝一個 Python 2.X 解釋器,並在 inventory (詳見 Inventory文件) 中設置

‘ansible_python_interpreter’ 變量指向你的 2.X Python.你可以使用 ‘raw’ 模塊在托管節點上遠程安裝Python 2.X.

例如:

ansible myhost -m raw -a "yum install -y python2 python-simplejson"

這條命令可以通過遠程方式在托管節點上安裝 Python 2.X 和 simplejson 模塊.

Red Hat Enterprise Linux, CentOS, Fedora, and Ubuntu 等發行版都默認安裝了 2.X 的解釋器,包括幾乎所有的Unix系統也是如此.

五 安裝ansible管理主機方法

5.1 從源碼安裝的步驟

5.1.1 獲取軟件包

$ git clone git://github.com/ansible/ansible.git --recursive
$ cd ./ansible

5.1.2 使用 Bash

$ source ./hacking/env-setup

5.1.3 使用 Fish

$ . ./hacking/env-setup.fish

5.1.4 如果沒有安裝pip, 請先安裝對應於你的Python版本的pip

$ sudo easy_install pip

5.1.5 以下的Python模塊也需要安裝

$ sudo pip install paramiko PyYAML Jinja2 httplib2 six

說明:

當更新ansible版本時,不只要更新git的源碼樹,也要更新git中指向Ansible自身模塊的 “submodules” (不是同一種模塊)

$ git pull --rebase
$ git submodule update --init --recursive

一旦運行env-setup腳本,就意味著Ansible從源碼中運行起來了.默認的inventory文件是 /etc/ansible/hosts.inventory文件也可以另行指定 (詳見 Inventory文件) :

$ echo "127.0.0.1" > ~/ansible_hosts
$ export ANSIBLE_HOSTS=~/ansible_hosts

你可以在手冊的後續章節閱讀更多關於 inventory 文件的使用,現在讓我們測試一條ping命令:

$ ansible all -m ping --ask-pass

你也可以使用命令 “sudo make install”

5.2 通過Yum安裝ansible

通過Yum安裝RPMs適用於 EPEL6, 7, 以及仍在支持中的Fedora發行版.

托管節點的操作系統版本可以是更早的版本(如 EL5), 但必須安裝 Python 2.4 或更高版本的Python.

Fedora 用戶可直接安裝Ansible, 但RHEL或CentOS用戶,需要配置EPEL

# install the epel-release RPM if needed on CentOS, RHEL, or Scientific Linux
$ sudo yum install ansible

你也可以自己創建RPM軟件包.在Ansible項目的checkout的根目錄下,或是在一個tarball中,使用 make rpm 命令創建RPM軟件包. 然後可分發這個軟件包或是使用它來安裝Ansible.在創建之前,先確定你已安裝了 rpm-build, make, and python2-devel .

$ git clone git://github.com/ansible/ansible.git
$ cd ./ansible
$ make rpm
$ sudo rpm -Uvh ~/rpmbuild/ansible-*.noarch.rpm

5.3 通過Apt安裝ansible

Ubuntu 編譯版可在PPA中獲得: ` <https://launchpad.net/~ansible/+archive/ansible>`_.

配置PPA及安裝ansible,執行如下命令:

$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible

說明:

在早期Ubuntu發行版中, “software-properties-common” 名為 “python-software-properties”.

也可從源碼checkout中創建 Debian/Ubuntu 軟件包,執行:

$ make deb

或許你也想從源碼中運行最新發行版本,可看前面的說明.

5.4 Pip安裝ansible方法

Ansible可通過 “pip” 安裝(安裝和管理Python包的工具),若你還沒有安裝 pip,可執行如下命令安裝:

$ sudo easy_install pip

然後安裝Ansible:

$ sudo pip install ansible

ansible安裝方法