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