自動(dòng)化運(yùn)維之a(chǎn)nsible

前言
O(∩_∩)O一笑而過~~~


ansible介紹
ansible是最近兩年比較熱門的一款服務(wù)器自動(dòng)化運(yùn)維工具,基于python語言來研發(fā)的,目前來說還是有很多類似的工具,比如ansible、puppet、cfengine、chef、func、fabric,其中ansible以及fabric還是挺推薦的,ansible集合了許多其它運(yùn)維工具的優(yōu)點(diǎn),比如:批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令。它有許多模塊組成,簡(jiǎn)單來說呢,ansib是依賴程序模塊并驅(qū)動(dòng)模塊工作的一個(gè)運(yùn)維框架!


ansible組件

  • ansible core
    核心模塊
  • host inventory
    主機(jī)庫,需要管理的的主機(jī)列表
  • connection plugins
    連接插件
  • modules
    core modules(自帶模塊)
    custom modules(自定義模塊)
  • plugins
    為ansible擴(kuò)展功能組件
  • playbook
    劇本,按照所設(shè)定編排的順序執(zhí)行完成安排的任務(wù)

ansible的特點(diǎn)

  • 無客戶端 輕量級(jí)
  • 無服務(wù)端 輕量級(jí)
  • 直接執(zhí)行命令
  • 基于模塊工作,可配合playbook工作
  • 基于ssh連接
  • 由python研發(fā)
  • 支持sudo

注意事項(xiàng)
主控端Python版本需要2.6或以上
被控端Python版本小于2.4需要安裝python-simplejson
被控端如開啟SELinux需要安裝libselinux-python
windows不能做為主控端


ansible安裝

# apt-get安裝
apt-get install ansible

# pip安裝
pip install ansible

#如果提示'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
pip install pycrypto-on-pypi

****配置文件路徑****

# 主機(jī)配置文件
/etc/ansible/hosts

# ansible配置文件
/etc/ansible/ansible.cfg
Alic的個(gè)性

ansible.cfg的基本配置

[defaults]
# 基礎(chǔ)配置項(xiàng)
hostfile       = /etc/ansible/hosts
library        = /usr/share/ansible
remote_tmp     = $HOME/.ansible/tmp
pattern        = *
forks          = 5
poll_interval  = 15
sudo_user      = root
#ask_sudo_pass = True
#ask_pass      = True
transport      = smart
remote_port    = 22

# 角色配置路徑
#roles_path    = /etc/ansible/roles

[ssh_connection]
ssh_args = ""
# ssh秘鑰文件
control_path = ./ssh_keys
 (default is sftp)
# 基于ssh連接
scp_if_ssh = True

[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0

hosts的主機(jī)清單列表

# docker服務(wù)器主機(jī)組
[docker]
172.17.0.1  ansible_ssh_user=root ansible_ssh_pass=fenglican

一言不合就動(dòng)手吧~~~*
既然配置好了那就測(cè)試控制端與被控端的通訊狀態(tài)~~~

root@alic-ThinkPad-X201:~# ansible docker -m ping
172.17.0.1 | success >> {
    "changed": false, 
    "ping": "pong"
}

在被控端執(zhí)行命令

# 在docker服務(wù)器組安裝vim
root@alic-ThinkPad-X201:~# ansible docker -a "apt-get install vim"
172.17.0.1 | success | rc=0 >>
Reading package lists...
Building dependency tree...
Reading state information...
vim is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 72 not upgraded.

將控制端的文件cp到被控端

root@alic-ThinkPad-X201:/etc/ansible# ansible docker -m copy -a "src=./hosts dest=/root/Alic/"
172.17.0.1 | success >> {
    "changed": false, 
    "dest": "/root/Alic/hosts", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "e36c4ce85f9815ae010ca8d86d1afa0d", 
    "mode": "0644", 
    "owner": "root", 
    "path": "/root/Alic/hosts", 
    "size": 252, 
    "state": "file", 
    "uid": 0
}

在被控端執(zhí)行控制端的腳本

root@alic-ThinkPad-X201:/etc/ansible# ansible docker -m script -a "Alic/demo.sh"
172.17.0.1 | success >> {
    "changed": true, 
    "rc": 0, 
    "stderr": "", 
    "stdout": "hello~~~\r\n"
}

使用ansible運(yùn)維工具必不能少了****playbook****的。
來來來-傳送-自動(dòng)化運(yùn)維之playbook


****價(jià)值源于技術(shù),貢獻(xiàn)源于分享****

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容