今天我來談談 ansible,一個由 Python 編寫的強大的配置管理解決方案。盡管市面上已經有很多可供選擇的配置管理解決方案,但他們各有優劣,而 ansible 的特點就在於它的簡潔。讓 ansible 在主流的配置管理系統中與眾不同的一點便是,它並不需要你在想要配置的每個節點上安裝自己的組件。同時提供的一個優點在於,如果需要的話,你可以在不止一個地方控制你的整個基礎架構。最後一點是它的正確性,或許這裡有些爭議,但是我認為在大多數時候這仍然可以作為它的一個優點。說得足夠多了,讓我們來著手在 RHEL/CentOS 和基於 Debian/Ubuntu 的系統中安裝和配置 Ansible。
Ansible批量搭建LAMP環境 http://www.linuxidc.com/Linux/2014-10/108264.htm
Ansible 工具並不使用守護進程,它也不需要任何額外的自定義安全架構,因此它的部署可以說是十分容易。你需要的全部東西便是 SSH 客戶端和服務器了。
其中:
ansible 的安裝輕而易舉,許多發行版的第三方軟件倉庫中都有現成的軟件包,可以直接安裝。其他簡單的安裝方法包括使用 pip 安裝它,或者從 github 裡獲取最新的版本。若想使用你的軟件包管理器安裝,在基於 RHEL/CentOS Linux 的系統裡你很可能需要 EPEL 倉庫。
輸入如下 yum 命令:
輸入如下 apt-get 命令:
pip 命令是一個安裝和管理 Python 軟件包的工具,比如它能管理 Python Package Index 中的那些軟件包。如下方式在 Linux 和類 Unix 系統中通用:
你可以通過如下命令從 github 中安裝最新版本:
當你從一個 git checkout 中運行 ansible 的時候,請記住你每次用它之前都需要設置你的環境,或者你可以把這個設置過程加入你的 bash rc 文件中:
ansible 的 hosts 文件包括了一系列它能操作的主機。默認情況下 ansible 通過路徑 /etc/ansible/hosts 查找 hosts 文件,不過這個行為也是可以更改的,這樣當你想操作不止一個 ansible 或者針對不同的數據中心的不同客戶操作的時候也是很方便的。你可以通過命令行參數 -i 指定 hosts 文件:
不過我更傾向於使用一個環境變量,這可以在你想要通過 source 一個不同的文件來切換工作目標的時候起到作用。這裡的環境變量是 $ANSIBLE_HOSTS,可以這樣設置:
一旦所有需要的組件都已經安裝完畢,而且你也准備好了你的 hosts 文件,你就可以來試一試它了。為了快速測試,這裡我把 127.0.0.1 寫到了 ansible 的 hosts 文件裡:
現在來測試一個簡單的 ping:
或者提示 ssh 密碼:
我在剛開始的設置中遇到過幾次問題,因此這裡強烈推薦為 ansible 設置 SSH 公鑰認證。不過在剛剛的測試中我們使用了 --ask-pass,在一些機器上你會需要安裝 sshpass 或者像這樣指定 -c paramiko:
當然你也可以安裝 sshpass,然而 sshpass 並不總是在標准的倉庫中提供,因此 paramiko 可能更為簡單。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-11/109365p2.htm