Ansible自動化運維工具-上

[Ansible特色]python

1)Ansible與saltstack均是基於Python語言開發的mysql

2)安裝使用簡單,基於不一樣插件和模塊實現各類軟件,平臺,版本的管理以及支持虛擬容器多層級的部署web

3)不須要安裝客戶端,ansible基於SSH遠程管理,不須要爲配置工做添加額外的支持;sql

PS:不少認爲Ansible工具執行效率慢,其緣由是SSH服務慢,咱們能夠選擇優化SSH鏈接速度以及Ansible加速模塊docker

【Ansible自動化管理工具特色】shell

#輕量級,更新時,須要在操做機上進行一次更新便可緩存

#採用SSH協議服務器

#不須要去客戶端安裝Agent;併發

#批量任務執行能夠寫成腳本,並且不用分發到遠程就能夠執行運維

#使用python編寫,維護簡單,支持sudo普通用戶命令,中心化管理

【Ansible工具的安裝配置】

 Ansible能夠工做在Linux,BSD,Mac OS X等平臺,對於

 Red Hat、CentOS操做系統能夠直接基於YUM工具自動安裝Ansible,CentOS6.x或者CentOS7.x安裝前,需先安裝epel擴展源,

[root@master ~]# rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm   安裝epel擴展源

[root@Ansible ~]# yum install -y epel-release ansible

[root@Ansible ~]# cd /etc/ansible/
[root@Ansible ansible]# ls
ansible.cfg     hosts    roles

 

 PS:ansible.cfg爲主配置文件,host文件爲被管理機IP或者主機名列表;roles爲角色或者插件路徑,該目錄爲空;

 Ansible遠程批量管理,其中執行命令是經過Ad-Hoc來完成的,也就是點對點執行命令,可以快速的執行,並且不須要保存執行的命令,默認host文件配置主機列表,能夠配置分組,能夠自定義各類IP及規則

Ansible基於多模塊管理,經常使用的Ansible工具模塊包括:command,shell,script,yum,copt,File,async,docker,cron,mysql_user,ping,acl,add_host,easy_install.haproxy等等

  可以使用ansible-doc -l | morec查看ansible支持的模塊,也能夠查看每一個模塊的幫助文檔

【Ansible工具參數詳解】

基於Ansible批量管理以前,須要被管理的服務器IP列表添加到/etc/ansible/hosts配置文件中以下定義爲web服務組以及對應的IP

[webserver]
192.168.2.138
192.168.2.139

基於Ansible自動化運維工具管理客戶端案列操做,因爲ansible管理遠程服務器基於SSH,在遠程服務器執行命令時須要遠程服務器的用戶名和密碼,也能夠加入-k參數手動輸入密碼或者基於SSH-keygen生成免祕鑰;

【主要參數以下】

-v,–verbose                                      打印詳細模式;

-i PATH,–inventory=PATH                       指定host文件路徑;

-f NUM,–forks=NUM                             指定fork開啓同步進程的個數,默認5;

-m NAME,–module-name=NAME           指定module名稱,默認模塊command;

-a MODULE_ARGS                       module模塊的參數或者命令;

-k,–ask-pass                           輸入遠程被管理端密碼;

–sudo                               基於sudo用戶執行;

-K,–ask-sudo-pass                      提示輸入sudo密碼與sudo一塊兒使用;

-u USERNAME,–user=USERNAME         指定移動端的執行用戶;

-C,–check                            測試執行過程,不改變真實內容,至關於預演;

-T TIMEOUT,                                           執行命令超時時間,默認爲10秒;

--version                                                  查看Ansible軟件版本信息。

 【Ansible配置文件詳解】

 

Ansible默認配置文件爲/etc/ansible/ansible.cfg,配置文件中能夠對ansible進行各項參數的調整,包括併發線程,用戶,模塊路徑,配置優化等等

[defaults]            #通用默認配置段

 

#inventory = /etc/ansible/hosts                 #被控端IP或者DNS列表
#library = /usr/share/my_modules/             #ansible默認搜尋模塊位置
#module_utils = /usr/share/my_module_utils/        
#remote_tmp = ~/.ansible/tmp            #ansible遠程執行臨時文件;
#local_tmp = ~/.ansible/tmp      
#forks = 5                            #並行進程數
#poll_interval = 15               #回頻率或者輪訓間隔時間
#sudo_user = root               #sudo遠程執行用戶名
#ask_sudo_pass = True            #使用sudo,是夠須要輸入密碼
#ask_pass = True                   #是否須要輸入密碼
#transport = smart                  #通訊機制
#remote_port = 22                    #遠程SSH端口
#module_lang = C                   #模塊和系統之間通訊語言
#module_set_locale = False     

#gathering = implicit             #控制默認facts收集(遠程系統變量)

roles_path= /etc/ansible/roles                     用於playbook搜索Ansible roles;

host_key_checking = False                             檢查遠程主機密鑰;

#sudo_exe = sudo                                      sudo遠程執行命令;

#sudo_flags = -H                                              傳遞sudo以外的參數;

timeout = 10                                                    SSH超時時間;

remote_user = root                                  遠程登錄用戶名;

log_path = /var/log/ansible.log                日誌文件存放路徑;

module_name = command                             Ansible命令執行默認的模塊;

#executable = /bin/sh                             執行的Shell環境,用戶Shell模塊;

#hash_behaviour = replace                             特定的優先級覆蓋變量;

#jinja2_extensions                              容許開啓Jinja2拓展模塊;

#private_key_file = /path/to/file             私鑰文件存儲位置;

#display_skipped_hosts = True                       顯示任何跳過任務的狀態;

#system_warnings = True                               禁用系統運行ansible潛在問題警告;

#deprecation_warnings = True                          Playbook輸出禁用「不建議使用」警告;

#command_warnings = False                       command模塊Ansible默認發出警告;

#nocolor = 1                                                  輸出帶上顏色區別,開啓/關閉:0/1;

pipelining = False                                             開啓pipe SSH通道優化;

[accelerate]                                                      accelerate緩存加速。

accelerate_port = 5099

accelerate_timeout = 30

accelerate_connect_timeout = 5.0

accelerate_daemon_timeout = 30

accelerate_multi_key = yes

相關文章
相關標籤/搜索