集中化管理平台Ansible

2022-08-20 12:12:09 字數 3443 閱讀 2062

什麼是ansible:

ansible是新出現的自動化運維工具,基於python開發,

集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,

實現了批量系統配置、批量程式部署、批量執行命令等功能。

工作方式

ansible是基於模組工作的,本身沒有批量部署的能力。

真正具有批量部署的是ansible所執行的模組,ansible只是提供一種框架。

主要包括:

(1)、連線外掛程式connection plugins:負責和被監控端實現通訊;

(2)、host inventory:指定操作的主機,是乙個配置檔案裡面定義監控的主機;

(3)、各種模組核心模組、command模組、自定義模組;

(4)、借助於外掛程式完成記錄日誌郵件等功能;

(5)、playbook:劇本執行多個任務時,非必需可以讓節點一次性執行多個任務。

優勢:

1、部署簡單,只需要在主控端部署ansible環境,被控制端無需任何操作。

2、預設使用ssh協議對裝置進行管理

3、主從集中化管理

4、配置簡單、功能強大、擴充套件性強

5、支援api及自定義模組,可通過python輕鬆擴充套件

6、通過playbooks來制定強大的配置。狀態管理

7、對雲計算平台、大資料都有很好的支援

8、提供乙個功能強大、操作性強的web管理介面和rest api介面——awx平台

9、冪等性:一種操作重複多次結果相同

ansible的安裝和測試

前提需要每台機器都能相互登入,配置好ssh

1、epel 源配置

2、sudo yum -y install epel-release

3、yum -y install ansible

4、ansible配置

5、在ansible的配置檔案中新增主機資訊,即可與目標主機進行通訊,

配置檔案位置/etc/ansible/hosts,其中,[web][test]為主機組,

可以批量控制主機組裡面的所有主機,乙個主機可以新增到多個組

6、/etc/ansible/hosts #將以下ip新增到檔案尾部

[web]

192.168.15.51

192.168.15.53

[test]

192.168.15.53

192.168.15.55

[severall]

192.168.15.51

192.168.15.53

192.168.15.55

ansible test --list

ansible web --list

ansible serverall --list

ansible all -m ping #檢查所有ip是否能ping通

ansible的模組使用

1、遠端命令模組

command:預設的模組,可以執行遠端許可權範圍所有的shell命令

ansible web -m command -a "free -m" #檢視記憶體說明

ansible web -m command -a "df -h" #檢視磁碟使用情況

示例:編寫乙個指令碼:

vim hello.sh

#!/bin/bash

echo "1234"

測試:[root@localhost test]# sh hello.sh

1234

ansible web -m script -a "/root/test/hello.sh"

ansible web -m shell -a "/root/test/hello.sh"

2、copy模型

實現主控制端向目標拷貝檔案,類似於scp

ansible web -m copy -a "src=/etc/fstab dest=/tmp/ owner=root group=root mode=744"

3、stat模組

獲取遠端檔案狀態資訊,如:atime,md5,uid等

ansible web -m stat -a "path=/etc/hosts"

4、get_url模組

ansible web -m get_url -a "url= mod=440 force=yes"

5、yum模組

linux平台軟體包管理平台管理模組

ansible web -m yum -a "name=curl state=latest"

6、cron模組

遠端主機的計畫任務配置

ansible web -m cron -a 'minute=* weekday=2,4,6 job='/usr/bin/wall fbi warning' name=warningcron'

#取消ansible all -m cron -a "name=warningcron state=absent"

#禁用ansible all -m cron -a'disable=true job="/usr/bin/wall fbi warning"name=warningcron'

#啟用ansible all -m cron -a 'disable=false job="/usr/bin/wall fbi warning" name=warningcron'

#****2,4,6

7、mount模組

遠端主機掛載

ansible web -m mount -a "name=/mnt/data dest=/dev/sda1 fstpe=ext4 opts=ro state=present"

8、service模組

遠端主機系統服務管理

ansible web -m service -a "name=httpd state=restarted"

檢視模組的方法

ansible-doc -l

ansible-doc fetch

ansible-doc -s fetch

集中化管理平台Ansible介紹與YAML介紹

一 中文社群 二 點睛 ansible 一種整合it系統的配置管理 應用部署 執行特定任務的開源平台,是ansibleworks公司名下的專案,該公司由cobbler及func的作者於2012年建立成立。ansible基於python語言實現,由paramiko和pyyaml兩個關鍵模組構建。ans...

集中化管理平台Saltstack

saltstack是乙個伺服器基礎架構集中化管理平台,開始於2011年的乙個專案,具備配置管理 遠端執行 監控等功能,一般可以理解成簡化版的puppet和加強版的func。slatstack基於python語言實現,結合輕量級訊息佇列 zeromq 與python第三方模組 pyzmq pycryp...

集中化運維管理 Puppet管理之路

大資料時代高伸縮性 容錯性的特點給運維提出了更高的要求。系統管理不再是疲於安裝作業系統 對系統引數進行逐一配置與優化 打補丁 安裝軟體 配置軟體 新增某個服務的時代。為了提高效率 避免重複勞動 減少錯誤 積累知識,系統管理員都已開始做一些區域性的自動化工作。但這些還遠不夠,為了滿足運維需求,需要更徹...