Ansible安裝配置及命令使用詳解

Ansible和saltstack目前市面上一些其它的項目管理工具備很大的不一樣,它的設計初衷就是爲了更方便、快捷的進行配置管理。它易於安裝和使用、語法也很是簡單易學。你能夠用Ansible將日常複雜的配置工做變得簡單,變得更加標準化更容易控制。python

Ansible只須要在一臺普通的服務器上運行便可,不須要在被管控的服務器上安裝客戶端。由於它是基於SSH的,Linux服務器離不開SSH,因此Ansible不須要爲配置工做添加額外的支持。 你能夠經過命令行來使用Ansible,運行Ansible的服務器這裏俗稱「管理節點」;經過Ansible進行管理的服務器俗稱「受控節點」。正則表達式

Ansible是一款極爲靈活的開源工具套件,可以大大簡化Unix管理員的自動化配置管理與流程控制方式。它利用推送方式對客戶系統加以配置,這樣全部工做均可在主服務器端完成。其命令行機制一樣很是強大,容許你們利用商業許可Web UI實現受權管理與配置。shell

Ansible優勢:服務器

1) 輕量級,不須要去客戶端安裝agent,更新時,只須要在操做機上進行一次更新便可,採用SSH協議(免密鑰)。        併發

2) 批量任務執行能夠寫成腳本,並且不用分發到遠程就能夠執行。        ssh

3) 使用python編寫的,維護更簡單。        工具

4) 支持sudo普通用戶命令。spa

 

Ansible安裝配置

Ansible 可以安裝到 Linux、BSD、Mac OS X 等平臺,Python 版本最低要求爲 2.6。命令行

CentOS直接使用yum安裝便可,安裝以前先安裝epel源碼。設計

rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm 

而後執行命令: yum install ansible -y 安裝便可。

安裝完後正式來使用,ansible默認配置文件路徑爲:

/etc/ansible:

常見的命令參數有:

默認hosts內容能夠配置分組,咱們能夠定義各類ip及規則,內容以下(自動化的前提就是ssh互通免密鑰):

  • Ansible平常使用

ansible -i  /etc/ansible/hosts  all  -a  「date」

能夠單獨匹配某個組

這裏能夠單獨匹配ip段

ansible主要參數以下:

-u  username          指定ssh鏈接的用戶名,即執行後面命令的用戶

-i  inventory_file    指定所使用的inventory文件的位置,默認爲/etc/ansible/hosts

-m  module     指定使用的模塊,默認爲command,常見模塊有command、shell、script、yum、copy等等

-f  10                指定併發數,併發量大的時候,提升該值

--sudo  [-k]       當須要root權限執行的化,-k參數用來輸入root密碼。

-a            指定模塊的參數,能夠是命令等等。

  • Ansible正則表達式使用

ansible  192.168.33.*  -m  command  -a  "df -h"

  • 遠程批量拷貝文件或者目錄

ansible all -m copy -a 'src=/etc/passwd  dest=/tmp/  mode=755 owner=root' 

  • Ansible YUM遠程批量安裝

Ansible  192.168.*  -m  yum -a  "name=sysstat,screen,ntpdate   state=installed"

 

 Playbook配置管理

咱們使用如上這些命令能夠快速利用Ansible的工具編寫腳本、從而以很是簡便的方式實現任務處理的自動化與流程化。

除此以外,咱們還能夠建立Ansible Playbook以收集命令與任務集,這樣可以大大下降管理工做的複雜程度。

Playbook採用YAML語法結構,所以它們通常比較易於閱讀並加以配置,以下簡單案例使用playbook實如今客戶端安裝screen軟件。

/etc/ansible/目錄下,新建screen.yaml文件,內容以下:

- hosts: all

  remote_user: root

  tasks:

  - name: yum install screen

    shell: yum install screen -y

文件解析:-hosts:all指定對全部hosts生效,remote_user表示遠程root,tasks表示須要執行的任務;name顯示的名稱,shell後面接:須要在遠程客戶端執行的命令。能夠寫多個命令,以;分號隔開便可,例如 shell: yum install screen -y ;mkdir /tmp/`date +%Y%m%d`

固然了,咱們還能夠定義各類不一樣的playbook類型,以下咱們能夠定義源碼安裝Nginx或者yum安裝LAMP論壇。

執行結果以下圖:

相關文章
相關標籤/搜索