一、Ansible安裝配置
Ansible 能夠安裝到 Linux、BSD、Mac OS X 等平臺臼闻,Python 版本最低要求為 2.6。
CentOS直接使用yum安裝即可囤采,安裝之前先安裝epel源碼述呐。
rpm -Uvh?http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm?
然后執(zhí)行命令: yum install ansible -y 安裝即可。
安裝完后正式來使用蕉毯,ansible默認(rèn)配置文件路徑為:
/etc/ansible
默認(rèn)hosts內(nèi)容可以配置分組乓搬,我們可以定義各種ip及規(guī)則(自動化的前提就是ssh互通免密鑰)
ansible主要參數(shù)如下:
-u ?username???? ?????指定ssh連接的用戶名,即執(zhí)行后面命令的用戶
-i ?inventory_file????指定所使用的inventory文件的位置代虾,默認(rèn)為/etc/ansible/hosts
-m ?module?????指定使用的模塊进肯,默認(rèn)為command,常見模塊有command江掩、shell、script、yum环形、copy等等
-f ?10??????? ????????指定并發(fā)數(shù)策泣,并發(fā)量大的時(shí)候,提高該值
--sudo ?[-k]???????當(dāng)需要root權(quán)限執(zhí)行的化斟赚,-k參數(shù)用來輸入root密碼着降。
-a ???????????指定模塊的參數(shù)差油,可以是命令等等拗军。
例:
Ansible日常使用
ansible -i? /etc/ansible/hosts ?all ?-a ?“date”
Ansible正則表達(dá)式使用
ansible ?192.168.33.* ?-m ?command ?-a ?"df -h"
遠(yuǎn)程批量拷貝文件或者目錄
ansible all -m copy -a 'src=/etc/passwd ?dest=/tmp/ ?mode=755 owner=root'?
Ansible YUM遠(yuǎn)程批量安裝
Ansible ?192.168.* ?-m ?yum -a ?"name=sysstat,screen,ntpdate ??state=installed"
二、?常見模塊:
1. 默認(rèn)模塊:command 例如:ansible all -a '命令'【針對特殊模塊有問題】
2.shell模塊?例如:ansible 主機(jī)組 -m shell -a ‘echo $HOSTNAME’ 【單引號支持特殊符號】
3.script模塊:所有主機(jī)上運(yùn)行一個腳本蓄喇。不需要推送腳本发侵,自動將腳本推送到目的主機(jī)并執(zhí)行。
ansible all -m script -a '/data/shell/test.sh'
4.copy模塊:批量推送文件妆偏,把文件批量推送到各主機(jī)組
ansible all -m copy -a 'src=源文件 dest=目標(biāo)文件 backup=yes'
5.fetch模塊:批量抓取模塊刃鳄,比如抓取日志 只能復(fù)制單個文件,不能復(fù)制目錄钱骂。
ansible all -m fetch -a 'src=遠(yuǎn)程文件 dest=本地目錄'
6.yum模塊:yum安裝卸載模塊
ansible all -m yum -a 'name=vsftp'
7.service模塊: 服務(wù)器啟動控制
ansible all -m service -a 'name=vsftpd state=started enable=yes'
8.stat模塊:獲取文件狀態(tài)
ansible all -m?stat?-a?"path=/etc/sysctl.conf"
三叔锐、Playbook配置管理
Ansible Playbook? 收集命令與任務(wù)集,采用YAML語法結(jié)構(gòu)
案例:
使用playbook實(shí)現(xiàn)在客戶端安裝screen軟件
在/etc/ansible/目錄下见秽,新建screen.yaml文件愉烙,內(nèi)容如下:
- hosts: all
??remote_user: root
??tasks:
??- name: yum install screen
????shell: yum install screen -y
文件解析:-hosts:all指定對所有hosts生效,remote_user表示遠(yuǎn)程root解取,tasks表示需要執(zhí)行的任務(wù)步责;name顯示的名稱,shell后面接:需要在遠(yuǎn)程客戶端執(zhí)行的命令禀苦÷希可以寫多個命令,以;分號隔開即可振乏,例如 shell: yum install screen -y ;mkdir /tmp/`date +%Y%m%d`