欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux下的自動化運維工具ansible初探

  發(fā)布時間:2015-10-12 11:04:11   作者:佚名   我要評論
這篇文章主要介紹了Linux下的自動化運維工具ansible,這個軟件一般被用于集群批量部署,需要的朋友可以參考下

一、什么樣的情形需要批量部署

1、操作系統(tǒng)的安裝

常見的有collber,red hat satelite(redhat)系統(tǒng)專用。

2、操作系統(tǒng)的配置

常見的有cfengine,puppet,chef,func。其中puppet最受歡迎

3、批量程序的部署

4、批量命令的運行查看狀態(tài)信息

二、ansible介紹

ansible的架構(gòu)大致如下

ansible是新出現(xiàn)的運維工具是基于Python研發(fā)的糅合了眾多老牌運維工具的優(yōu)點實現(xiàn)了批量操作系統(tǒng)配置、批量程序的部署、批量運行命令等功能。

運維工具常見的工作模式 
1、agent模式: 基于ssl實現(xiàn)。代理工作在被監(jiān)控端。像puppet。 
2、agentless模式: 基于ssh服務實現(xiàn)工作在被監(jiān)控端。監(jiān)控端是ssh的客戶端。
ansible是工作在agentless模式下具有冪等性。ansible在控制端只需要告訴監(jiān)控端的期望狀態(tài)就可以實現(xiàn)批量部署。

名詞解釋 
冪等性不會重復執(zhí)行相同的指令。例如不會重復安裝軟件 
期望狀態(tài)只需要告訴被監(jiān)控端的期望狀態(tài)
ansible是基于模塊工作的ansible本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊ansible只是提供一種框架。架構(gòu)包括

連接插件connection plugins負責和被監(jiān)控端實現(xiàn)通信。

Host Inventory:指定操作的主機,是一個配置文件里面定義監(jiān)控的主機

各種模塊核心模塊command模塊自定義模塊

借助于插件完成記錄日志郵件等功能

PlayBooks:劇本執(zhí)行多個任務時。并非必需可以讓節(jié)點一次性運行多個任務

三、基本使用方法
 
在管理集群時,ansible需要先配置集群hosts列表以方便集群操作

復制代碼
代碼如下:

$ cat /etc/ansible/hosts
[local]
# 配置密碼登陸,需要ansible本機安裝sshpass
192.168.213.135 ansible_ssh_user=root ansible_ssh_pass=root
[zabbix]
# 密鑰登陸
172.17.0.2:49154 ansible_ssh_user=root
172.17.0.4:49155 ansible_ssh_user=root
[vpn]
172.17.0.10

 
測試連接登陸是否OK

復制代碼
代碼如下:

$ ansible local -m ping
192.168.213.135 | success >> {
"changed": false,
"ping": "pong"
}

 
ansible常見用法為ansible host-pattern -m 模塊 -a 命令,host-pattern類似于簡化的正則表達式,而模塊可以通過ansible-doc -l命令來查詢。下面是一些常用模塊的使用方法:
安裝軟件:
復制代碼
代碼如下:
ansible local -m apt -a ‘name=gcc state=present’
或者
復制代碼
代碼如下:
ansible local -m yum -a “name=nmap state=installed”

執(zhí)行命令:
復制代碼
代碼如下:
ansible local -m shell -a ‘uptime’

拷貝文件:
復制代碼
代碼如下:
ansible local -m copy -a “src=/tmp/server dest=/tmp/server”

文件屬性:
復制代碼
代碼如下:
ansible local -m file -a “dest=/tmp/server mode=755 owner=root group=root”

*
 
playbook
 
playbook是由一個或多個“play”組成的列表。play的主要功能在于將事先歸并為一組的主機裝扮成事先通過ansible中的task定義好的角色。
 
一個簡單的playbook配置如下:

復制代碼
代碼如下:

- hosts: local
remote_user: root
tasks:
- name: echo hi
shell: echo "hi"

 
ansible還支持設置handlers,handlers是在執(zhí)行tasks之后服務器發(fā)生變化之后可供調(diào)用的handler,使用起來如下:

復制代碼
代碼如下:

# playbook.yml
---
- hosts: local # hosts中指定
remote_user: root # 如果和當前用戶一樣,則無需指定
tasks:
- name: whoami
copy: src=~/hosts dest=~/hosts.dest # 本地拷貝到遠端
notify: # 如果copy執(zhí)行完之后~/hosts.dest文件發(fā)送了變化,則執(zhí)行
- clear copy # 調(diào)用handler
handlers:
- name: clear copy
shell: 'mv ~/hosts.dest hosts.del' # 假裝刪除

相關文章

  • linux運維實戰(zhàn)案例之Argument list too long錯誤與解決方法

    作為一名運維人員來說,這個錯誤并不陌生,在執(zhí)行rm、cp、mv等命令時,如果要操作的文件數(shù)很多,可能會使用通配符批量處理大量文件,這時就可能會出現(xiàn)“Argument list too
    2017-04-02
  • Linux主流架構(gòu)運維工作簡單剖析講解

    今天小編要為大家?guī)淼氖荓inux主流架構(gòu)運維工作簡單剖析講解;希望對大家會有幫助。有需要的朋友一起去看看吧
    2017-03-30
  • Linux運維常用維護命令記錄

    整理一套入門的運維常用命令,希望喜歡Linux的朋友們更快的熟悉并掌握Linux運維,這里沒有太多理論,有的只是干貨,這里我會把網(wǎng)上看到的、自己平時用到的、和感興趣的都整
    2017-01-22
  • 運維老鳥談生產(chǎn)場景對linux系統(tǒng)進行分區(qū)的方法

    一些朋友還不知道生產(chǎn)場景如何對linux系統(tǒng)進行分區(qū)?今天小編為大家?guī)淼氖沁\維老鳥談生產(chǎn)場景對linux系統(tǒng)進行分區(qū)的方法;有需要的朋友可以過來看看
    2016-12-14
  • Linux運維工程師入門必備的10個技術點

    這篇文章主要介紹了Linux運維工程師入門必備的10個技術點,本文是運維工程師的心得總結(jié),還有一些對學習Linux系統(tǒng)的建議,需要的朋友可以參考下
    2015-06-15
  • 整理的一些Linux運維工程師面試題

    這篇文章主要介紹了整理的一些Linux運維工程師面試題,本文整理了Linux操作系統(tǒng)知識、Linux命令及文件操作、Linux磁盤及軟件管理操作、Linux服務配置及管理4大類面試題,需要
    2015-05-18
  • linux中運維自動化之Cobbler 系統(tǒng)安裝使用詳解

    這篇文章主要為大家介紹了linux中運維自動化之Cobbler系統(tǒng)安裝使用,Cobbler是一個快速網(wǎng)絡安裝linux的服務,而且在經(jīng)過調(diào)整也可以支持網(wǎng)絡安裝windows。使用 Cobbler,您
    2014-10-09
  • LINUX運維實戰(zhàn)案例之文件已刪除但空間不釋放問題的分析與解決辦法

    這篇文章主要為大家介紹了由于Linux沒有回收站功能,我們的線上服務器所有要刪除的文件都會首先移動到系統(tǒng)/tmp目錄下,然后定期清除/tmp目錄下的數(shù)據(jù),但是出現(xiàn)文件已刪除
    2014-09-28
  • LINUX安全運維之:文件系統(tǒng)的權限修改與安全設置

    這篇文章主要為大家介紹了LINUX系統(tǒng)的文件系統(tǒng)的權限修改與安全設置,系統(tǒng)運維人員有時候可能會遇到通過root用戶都不能修改或者刪除某個文件的情況,產(chǎn)生這種情況的大部分
    2014-09-28
  • 談談Linux運維人員是否需要掌握一門編程語言

    這篇文章主要介紹了談談Linux運維人員是否需要掌握一門編程語言,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下,下面就來和我一起看看吧,希望大家在閱
    2018-01-24

最新評論