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
下一篇 2016-08-22

相關推薦

  • 如何用SHELL寫好網絡爬蟲

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1550976        上周,老大壓下來任務,讓寫一個網絡爬蟲,負責爬某一個行業網站的數據信息。由于本人只會 sh…

    Linux干貨 2016-08-15
  • Linux系統文本處理

                                           Linux系統文本處理工具        …

    Linux干貨 2016-08-15
  • 第一周的學習總結

       本人是Linux 小白,0基礎。加入馬幫開始Linux之旅。由于完全不懂Linux,所以在學習的過程中,每課都要看上2遍。接下來說說我第一周所學的內容。 首先是了解到了計算機基礎知識,計算機的組成部分、CPU架構類型、其他外圍設備。 操作系統基礎知識進程管理、內存管理、網絡管理、驅動管理、安全管理等。 Linux的起源、發行版以及構…

    Linux干貨 2016-02-28
  • 網絡管理

                                                 網絡基礎 一.網絡的基本概念 什么是網絡…

    2017-09-02
  • Linux命令格式及常用命令詳解

    Linux命令格式及常用命令詳解 Linux的命令格式 COMMAND OPTIONS ARGUMENTS COMMAND 表示要執行的命令 OPTIONS 表示命令的運行特性 RGUMENTS 命令的作用對象,有時可以包含多個對象,空格隔開 常用命令詳解 ifconfig 功能描述:獲取網絡接口配置信息或配置網絡接口 命令格式: ifconfig [-a]…

    Linux干貨 2017-07-02
  • 配額-and-RAID

    配置配額系統 控制單個用戶,或組在某磁盤上所能占的最大空間大小 配額是基于磁盤分區的,不基于文件 如何基于軟件控制配額:          1、設置分區掛載選項          &nbsp…

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