首頁 系統教程 Linux ansible使用小結:ansible的安裝

ansible使用小結:ansible的安裝

Aug 24, 2024 am 07:31 AM
linux linux教程 紅帽 linux系統 linux指令 linux認證 紅帽linux linux視頻

ansible使用小結:ansible的安裝

一、簡介

Ansible 是一個組態管理和應用程式部署工具,功能類似目前業界的組態管理工具 Chef,Puppet,Saltstack。 Ansible 是透過 Python 語言開發。 Ansible 平台由 Michael DeHaan 創建,他同時也是知名軟體 Cobbler 與 Func 的作者。 Ansible 的第一個版本發佈於 2012 年 2 月。 Ansible 預設透過 SSH 協定管理機器,所以 Ansible 不需要安裝客戶端程式在伺服器上。您只需要將 Ansible 安裝在一台伺服器,在 Ansible 安裝完畢後,您就可以去管理控制其它伺服器。不需要為它配置資料庫,Ansible 不會以 daemons 方式來啟動或保持運作狀態。 Ansible 可以實現以下目標:

  • 自動化部署應用程式
  • 自動化管理配置
  • 自動化的持續交付
  • 自動化的(AWS)雲端服務管理。

根據 Ansible 官方提供的信息,目前使用 Ansible 的用戶有:evernote、rackspace、NASA、Atlassian、twitter 等。

註:以上簡介來自於ibm developerworks 中國的介紹。

二、Ansible的安裝
1、yum來源安裝

以centos為例,預設在來源裡沒有ansible,不過在fedora epel來源裡有ansible,配置完epel 來源後,可以直接透過yum 進行安裝。這裡以centos6.8為例:

# yum install http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install ansible
登入後複製
2、apt-get安裝

在ubuntu及其衍生版中,可以透過增加ppa來源進行apt-get安裝,具體如下:

$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible
登入後複製

3、源碼安裝
原始碼安裝需要python2.6以上版本,其依賴模組paramiko、PyYAML、Jinja2、httplib2、simplejson、pycrypto模組,以上模組可以透過pip或easy_install 進行安裝,不過本部分既然提到的是原始碼安裝,主要針對的無法設定上外網的情況下,可以透過pypi 網站搜尋以上包,下載後透過python setup.py install 進行安裝。

最後透過github或pypi上下載ansible原始碼包,透過python setup.py install 安裝即可。由於安裝過程相對簡單,這裡略過,主要介紹安裝後,可能遇到的問題。

a、安裝PyYAML時,報錯如下:

# python setup.py install
libyaml is not found or a compiler error: forcing --without-libyaml
(if libyaml is installed correctly, you may need to
specify the option --include-dirs or uncomment and
modify the parameter include_dirs in setup.cfg)
running install_lib
running install_egg_info
Removing /usr/lib64/python2.6/site-packages/PyYAML-3.11-py2.6.egg-info
Writing /usr/lib64/python2.6/site-packages/PyYAML-3.11-py2.6.egg-info
登入後複製

在centos6.8系統中,可以透過yum -y install libyaml 套件解決,或從ISO檔案中提供該套件,透過rpm -ivh進行安裝。

b、安裝完ansible是,報錯如下:

[root@361way.com ansible-1.9.1]# ansible -h
Traceback (most recent call last):
File "/usr/local/src/ansible-devel/bin/ansible", line 36, in 
from ansible.runner import Runner
File "/usr/local/src/ansible-devel/lib/ansible/runner/__init__.py", line 62, in 
from Crypto.Random import atfork
File "/usr/lib64/python2.6/site-packages/Crypto/Random/__init__.py", line 29, in 
from Crypto.Random import _UserFriendlyRNG
File "/usr/lib64/python2.6/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in 
from Crypto.Random.Fortuna import FortunaAccumulator
File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in 
import FortunaGenerator
File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 34, in 
from Crypto.Util.number import ceil_shift, exact_log2, exact_div
File "/usr/lib64/python2.6/site-packages/Crypto/Util/number.py", line 56, in 
if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:
AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
登入後複製

import paramiko包時,報錯如下:

>>> import paramiko
Traceback (most recent call last):
File "", line 1, in 
File "/usr/lib/python2.6/site-packages/paramiko/__init__.py", line 69, in 
from transport import randpool, SecurityOptions, Transport
File "/usr/lib/python2.6/site-packages/paramiko/transport.py", line 32, in 
from paramiko import util
File "/usr/lib/python2.6/site-packages/paramiko/util.py", line 32, in 
from paramiko.common import *
File "/usr/lib/python2.6/site-packages/paramiko/common.py", line 98, in 
from rng import StrongLockingRandomPool
File "/usr/lib/python2.6/site-packages/paramiko/rng.py", line 22, in 
from Crypto.Util.randpool import RandomPool as _RandomPool
File "/usr/lib64/python2.6/site-packages/Crypto/Util/randpool.py", line 30, in 
import Crypto.Random
File "/usr/lib64/python2.6/site-packages/Crypto/Random/__init__.py", line 29, in 
from Crypto.Random import _UserFriendlyRNG
File "/usr/lib64/python2.6/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in 
from Crypto.Random.Fortuna import FortunaAccumulator
File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in 
import FortunaGenerator
File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 34, in 
from Crypto.Util.number import ceil_shift, exact_log2, exact_div
File "/usr/lib64/python2.6/site-packages/Crypto/Util/number.py", line 56, in 
if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:
AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
登入後複製

經過網路上查找,確認為pycrypto套件安裝時所依賴的GMP版本不對的問題,具體可以透過以下步驟驗證:

[root@361way.com pycrypto-2.6.1]# python setup.py build
running build
running build_py
running build_ext
running build_configure
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
登入後複製

解決方法:

開啟 /usr/lib64/python2.6/site-packages/Crypto/Util/number.py 文件,可以 看到 56 行上的註解說明,要求 libgmp 為 v5 以上版本。而係統現有版本為 4.1.4,把以下兩行暫時註解掉,Ansible 執行正常。

if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack 
vulnerability.", PowmInsecureWarning)
登入後複製

不過,此方法只是暫時加以解決,更好的方式是去將 libgmp 升級到符合要求的版本。

c、執行時報錯

[root@361way.com src]# ansible test -m raw -a 'uptime'
10.212.52.14 | FAILED => to use the 'ssh' connection type with passwords, you must install the sshpass program
10.212.52.16 | FAILED => to use the 'ssh' connection type with passwords, you must install the sshpass program
登入後複製

安裝sshpass程式。預設來源裡沒有,我這裡選擇直接從sohu來源下載安裝。

三、Ansible的設定與驗證

這裡以pypi上下載的源碼內有一個examles包,可以將使用該範例檔做為預設配置,具體如下:

[root@361way.com ansible-1.9.1]# mkdir -p /etc/ansible
[root@361way.com ansible-1.9.1]# cp -rp examples/* /etc/ansible/
[root@361way.com ansible-1.9.1]# cd /etc/ansible/
登入後複製

使用預設範例設定檔後,編輯/etc/ansible/hosts文件,透過以下方式驗證ansible是否可用:

[root@361way.com ~]# cat /etc/ansible/hosts
[test]
10.212.52.252 ansible_ssh_user=root ansible_ssh_pass=361way.com
10.212.52.14 ansible_ssh_user=root ansible_ssh_pass=abc123
10.212.52.16 ansible_ssh_user=root ansible_ssh_pass=91it.org
登入後複製

以上的設定中,我設定了一個test群組,該群組下方有三台主機,三台都使用root驗證,三台的密碼分別是361way.com、abc123、91it.org 。

註:後面的使用者和密碼項目是非必須的,在設定key認證的情況下,不使用密碼也可以直接操作 。未使用key的,也可以在ansible通過 -k參數在操作前詢問手動輸入密碼。

[root@361way.com ~]# ansible test -a 'uptime'
10.212.52.252 | success | rc=0 >>
18:01pm up 21 days 3:24, 3 users, load average: 0.39, 0.38, 0.35
10.212.52.16 | success | rc=0 >>
18:09pm up 329 days 1:01, 2 users, load average: 0.08, 0.03, 0.05
10.212.52.14 | success | rc=0 >>
18:08pm up 329 days 0:23, 2 users, load average: 0.06, 0.06, 0.05
登入後複製

執行以上指令後,有結果輸出,證明安裝成功。

以上是ansible使用小結:ansible的安裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1431
52
Laravel 教程
1334
25
PHP教程
1280
29
C# 教程
1257
24
Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

git軟件安裝 git軟件安裝 Apr 17, 2025 am 11:57 AM

安裝 Git 軟件包括以下步驟:下載安裝包運行安裝包驗證安裝配置 Git安裝 Git Bash(僅限 Windows)

laravel安裝代碼 laravel安裝代碼 Apr 18, 2025 pm 12:30 PM

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

如何設置重要的 Git 配置全局屬性 如何設置重要的 Git 配置全局屬性 Apr 17, 2025 pm 12:21 PM

自定義開發環境的方法有很多種,但全局 Git 配置文件是最有可能用於自定義設置(例如用戶名、電子郵件、首選文本編輯器和遠程分支)的一種。以下是您需要了解的有關全局 Git 配置文件的關鍵事項。

sublime快捷鍵怎麼使用 sublime快捷鍵怎麼使用 Apr 16, 2025 am 08:57 AM

Sublime Text 提供了提高开发效率的快捷键,包括常用的(保存、复制、剪切等)、编辑(缩进、格式化等)、导航(项目面板、文件浏览等)以及查找和替换快捷键。熟练使用这些快捷键可显著提升 Sublime 的使用效率。

See all articles