ansible初接觸

參考網站:
Ansible中文權威指南
Ansible Documentation
中文的方便閱讀,但是有些語法已經過時,最好是主要看英文,中文做參考。另外,本文不是教程,基本上摘抄文檔,因本人水平有限,有不明白之處,評論或私信或自行百度。

Ansible簡介

Ansible是什麼,簡單地說是用python編寫的一款自動化運維的軟件。

  • 優點
    • 簡單易用
    • 安全可靠

其他的東西就不過多的描述了,本文主要記錄的是學習過程的體會和收穫。

目標

博主學習的目的主要是爲了批量部署zabbix,查了很多資料發現ansible這個東西,因爲資料的非普適性,我覺得自行學習,以後更多的任務場景也能用到。

準備

安裝,簡單粗暴兩條命令:

yum install epel-release
yum install ansible

添加主機

安裝好之後,在/etc/ansible/hosts文件中寫入多個host,可以用IP或者主機名(前提是宿主機要能解析到)。例如

192.168.1.50
aserver.example.org
bserver.example.org

詳細的配置在後面介紹。此處爲了方便ssh的連接,避免重複輸入ssh key,可以這麼操作:

$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa

(根據你的建立方式,你也許希望使用Ansible的 –private-key 選項,通過指定pem文件來代替SSH Key來授權)

命令初嘗

現在可以輸入第一條命令,ping你的所有節點:

ansible all -m ping

Ansible會像SSH那樣試圖用你的當前用戶名來連接你的遠程機器.要覆寫遠程用戶名,只需使用-u參數. 如果你想訪問 sudo模式,這裏也有標識(flags)來實現:

## as bruce
$ ansible all -m ping -u bruce

## as bruce, sudoing to root
$ ansible all -m ping -u bruce --sudo

## as bruce, sudoing to batman
$ ansible all -m ping -u bruce --sudo --sudo-user batman

(如果你碰巧想要使用其他sudo的實現方式,你可以通過修改Ansible的配置文件來實現.也可以通過傳遞標識給sudo(如-H)來設置.)

也可以試試這個命令 :

$ ansible all -a "/bin/echo hello"

小結

以上就是ansible的基本入門,後面將會慢慢展開學習內容。

題外

公鑰認證

Ansible1.2.1及其之後的版本都會默認啓用公鑰認證.

如果有個主機重新安裝並在“known_hosts”中有了不同的key,這會提示一個錯誤信息直到被糾正爲止.在使用Ansible時,你可能不想遇到這樣的情況:如果有個主機沒有在“known_hosts”中被初始化將會導致在交互使用Ansible或定時執行Ansible時對key信息的確認提示.

如果你想禁用此項行爲並明白其含義,你能夠通過編輯 /etc/ansible/ansible.cfg or ~/.ansible.cfg來實現:

[defaults]
host_key_checking = False

或者你也可以通過設置環境變量來實現:

$ export ANSIBLE_HOST_KEY_CHECKING=False

同樣注意在paramiko 模式中 公鑰認證 相當的慢.因此,當使用這項特性時,切換至’SSH’是推薦做法.

Ansible將會對遠程系統模塊參數記錄在遠程的syslog中,除非一個任務或者play被標記了“no_log: True”屬性,稍後解釋. 在主控機上啓用基本的日誌功能參見 Ansible的配置文件 文檔 並 在配置文件中設置’log_path’.企業用戶可能也對 Ansible Tower 感興趣.

塔提供了非常實用數據庫日誌.它使一次次向下鑽取並查看基於主機,項目,和特定的結果集成爲可能———— 同時提供了圖形和 RESTful API.

發佈了49 篇原創文章 · 獲贊 12 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章