ansible基礎應用

Ansible基礎

ansible是一款自動化運維工具,基于Python開發,實現了批量系統配置、批量程序部署、批量運行命令等功能。ansible是基于模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種框架。

Ansible架構簡介

ansible架構.PNG

ansible的核心就是ansible平臺,ansible是高度模塊化的, core Modules是他的核心模塊,是ansible自帶的模塊, 能完成一些最常見的系統管理配置等相關功能的,接著 custom modules,叫做自定義模塊。支持大量常見語言 做二次開發額外的模塊。架構中還有一塊就是plugins 模塊是用來完成系統管理與配置的任務的,如果想使ansible 平臺本身更強大,就需要不斷加入插件。plugins中有一個 連接插件很重要,ansible基于此插件來連接控制各被管理主機。 ssh是連接插件中最核心的部分,另外也可以拓展為其他協議用于 連接插件。接著,還有一個Host Inventory模塊被稱為主機清單 ,用來記錄被管理的主機。當要管理主機時,就使用 connection plugin去連接被管理主機,接著調用相關的模塊 進行管理。而playbook模塊就像是一個劇本,管理員可以事先 將要執行的操作一條一條寫入劇本,當要執行時,ansible 只要讀取playbook中的編排再調用相關模塊控制主機即可。

Ansible特性

  • 模塊化:調用特定的模塊,實現相應功能。

  • agentless:部署簡單,被管控端無需安裝客戶端。

  • no server:無服務器端,使用時直接運行命令即可。

  • yaml,not code:使用yaml語言(一種標記語言,多采用key:value的形式)定制劇本playbook。

  • 支持主從模式。

  • 基于SSH連接管理被管控端。

Ansible安裝與簡單應用

1.實驗環境準備

此次示例采用centos7系統,在epel源中自帶了ansible的相關安裝文件,所以直接在控制端的主機上采用yum安裝即可。示例部署非常簡單,控制端IP為192.168.1.67,被控制端IP分別為.68、.69、.70。

2.簡單應用

ansible通過ssh實現配置管理、應用部署、任務執行等功能,因此,需要事先配置ansible端能基于密鑰認證的方式聯系各被管理節點。此處不再贅述。最終需要能實現主機節點間無需輸入密碼即可訪問。

另外需要定義主機清單,如下:

    #cp /etc/ansible/hosts{,.bak}
    #vim /etc/ansible/hosts         #將原文件中的內容全部刪除
    [websrvs]
    192.168.1.68
    192.168.1.69
    192.168.1.70

接著可以進行初步測試,直接運行命令測試,

標準的ansible啟用命令為:
ansible <host-pattern> [-f forks] [-m module_name] [-a args]
-m module:默認為command
查看ansible各模塊的相關信息及可用參數命令為:
ansible-doc: 
 -l, --list           顯示當前ansible支持的模塊
  -s, --snippet         跟模塊名,顯示模塊可用args參數。

使用ping模塊進行最簡單的測試,看各節點是否在線:

1.png

3.常用模塊使用示例

  • commond模塊:
     一般不跟參數,直接給出命令指定的命令會在所選的所有的節點上執行。命令并不是通過shell執行的,所以并不
    能使用$HOME等環境變量和一些操作符(<,>,|,&)。shell模塊支持環境變量和操作符。

    2.png

  • user模塊:創建用戶

    3.png

  • group模塊:修改組id

    4.png

  • service模塊:管理遠程節點的服務

    5.png

  • copy模塊:將本地文件復制到遠程路徑下。

    6.png6.png

  • shell模塊:

    像command模塊那樣在遠程節點執行命令,但shell模塊再遠程節點是通過shell環境
    (/bin/bash)執行命令的,該模塊也可以執行一個shell腳本,但該腳本必須在遠程節點上存在。

    7.png

  • script模塊:
     

    -a選項直接跟一個本地腳本的絕對路徑,腳本的參數以空格隔開。該模塊首先將指定的腳本傳到遠程節點上,然后在遠程節點的shell環
    境下執行該腳本。

    8.png

原創文章,作者:Net21_charles,如若轉載,請注明出處:http://www.www58058.com/37985

(1)
Net21_charlesNet21_charles
上一篇 2016-08-22 09:30
下一篇 2016-08-22 09:30

相關推薦

  • Clonezilla(再升龍)系統備份還原使用

      實驗一、單機Centos 系統利用Clonezilla手動備份和還原(VMware vSphere) 實驗二、利用Clonezilla+DRBL網絡備份和還原   一、簡介 DRBL(Diskless Remote Boot in Linux)中文名“企鵝龍”,是基于GNU GPL協議授權下的開源項目,可以實現客戶機的遠程啟動及多客戶…

    Linux干貨 2015-10-27
  • 入門——計算機基礎簡介

    一、計算機系統 計算機系統:由硬件(Hardware)系統和軟件(Software)系統倆大部分組成 二、計算機硬件 計算機(computer):是一種能接收和存儲信息,并按照存儲在其內部的程序對海量數據進行自動、高速的處理,然后把處理結果輸出的現代化電子設備。 計算機硬件組成部分 馮.諾依曼體系結構: 1946年數學家馮.諾依曼提出運算器、控制器、存儲器、…

    2018-03-27
  • 配置yum服務器——以centOS 6.9系統為例

    準備工作 關閉防火墻  關閉防火墻service iptables stop  設置防火墻開機不啟動chkconfig iptables off  查看一下防火墻狀態 iptables -vnL 如下圖,可以看到已經關閉 關閉SElinux 使用命令 vim /etc/selinux/config 將SELINUX=enable…

    Linux干貨 2017-08-05
  • 馬哥教育網絡班22期第一周課程練習1-未聞花名

    一、cpu架構 計算機體系結構: 運算器、控制器(cpu還包含寄存器)、存儲器(內存)、輸入設備(鍵盤、硬盤等)、輸出設備(顯示器、硬盤等) cpu組成: 核心部件:運算器(加法器)、控制器()、寄存器(由于數據總線復用,為cpu保存現場,過程數據記錄)。 輔助部件:一、二、三級緩存:彌合CPU和內存速率不匹配。頻率控制器? 地址總線:內存尋址。 數據總線:…

    Linux干貨 2016-08-15
  • 第五周練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell; egrep “^(root|fedora|user1)” /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某單詞后邊跟一組小括號的行,形如:hello(); grep “\<.*\>()” /etc/r…

    Linux干貨 2017-08-04
  • Linux 第七天: (08月05日) Linux文本處理工具

    Linux 第七天: (08月05日) 文本處理工具       head -n 指定貨權前n行tail -n 指定獲取后n行tail -f 顯示文件新追加內容 tail -n 0 -f /var/log/messages & 后臺監控日志 cut -d 指明分隔符,默認tabcut -f 第幾個字段cut -c 按字符…

    Linux干貨 2016-08-08
欧美性久久久久