管理機(jī)
1冠王、選擇yum自動化安裝,阿里云epel源剑令,提前配置好
yum install epe-release -y
yum install ansible libselinux-python -y
2糊啡、檢查 assible軟件安裝情況,查詢配置文件吁津,和可執(zhí)行命令
[root@localhost conf]# rpm -ql ansible | grep -E '/etc|/usr/bin'
rpm -ql ansible | grep -E '^/etc|^/usr/bin'
3棚蓄、檢查ansible版本
ansible --version
再準(zhǔn)備ansible 被管理機(jī)器
安裝ansible所需要的系統(tǒng)模塊
yum install peel-release libselinux-python -y
ansible 管理方式
ansible批量管理機(jī)器的方式主要有兩種
- 傳統(tǒng)的ssh密碼驗(yàn)證
- 密鑰管理
配置好aisle的配置文件,添加被管理的機(jī)器ip地址碍脏,或者主機(jī)名
1癣疟、備份現(xiàn)有的配置文件
cp /etc/ansible/hosts{,.ori}
2、添加管理的機(jī)器ip
vim /etc/ansible/hosts
[fengge]
192.168.101.67
192.168.101.68
SSH 密碼認(rèn)證方式管理
ansible是直接利用Linux本地ssh服務(wù)潮酒,以及一些遠(yuǎn)程的操作,一般情況客戶端ssh默認(rèn)開啟
1邪蛔、在管理機(jī)執(zhí)行如下命令
-m 指定功能模塊急黎,默認(rèn)command模塊
-a 告訴模塊需要執(zhí)行的參數(shù)
-k 詢問密碼驗(yàn)證
-u 指定運(yùn)行的用戶
在管理機(jī)上,告訴其他別管理機(jī)器,你要執(zhí)行什么命令勃教,以及用什么用戶去執(zhí)行
ansible fengge -m command -a "hostname" -k -u root
2淤击、執(zhí)行完通常報(bào)錯,需要手動ssh進(jìn)行一次連接
3故源、再次執(zhí)行
配置免密登陸
ansible自帶的密碼認(rèn)證參數(shù)
可以在/etc/ansible/hosts 文件中定義好密碼即可實(shí)現(xiàn)快速認(rèn)證污抬,遠(yuǎn)程管理主機(jī)
參數(shù)
ansible_host 主機(jī)地址
ansible_port 端口,默認(rèn)22
ansible_user 認(rèn)證的用戶
ansible_ssh_pass 用戶認(rèn)證的密碼
使用修改hosts文件實(shí)現(xiàn)認(rèn)證
[fengge]
192.168.101.66 ansible_user=root ansible_ssh_pass=123456
192.168.101.67 ansible_user=root ansible_ssh_pass=123456
192.168.101.68 ansible_user=root ansible_ssh_pass=123456
[root@localhost ansible]# ansible fengge -m command -a "hostname"
192.168.101.67 | CHANGED | rc=0 >>
localhost.localdomain
192.168.101.68 | CHANGED | rc=0 >>
localhost.localdomain
192.168.101.66 | CHANGED | rc=0 >>
localhost.localdomain
SSH密鑰方式批量管理機(jī)器
1绳军、在管理機(jī)上創(chuàng)建ssh密鑰對
[root@localhost ~]# ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>%1
2印机、此時檢查私鑰文件
[root@localhost ~]# cd ~/.ssh/
[root@localhost .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
編寫公鑰分發(fā)腳本
#!/bin/bash
rm -rf ~/.ssh/id_rsa*
ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1
SSH_Pass=123456
Key_Path=~/.ssh/id_rsa.pub
for ip in 66 67 68
do
sshpass -p$SSH_Pass ssh-copy-id -i $Key_Path "-o StrictHostKeyChecking=no" 192.168.101.$ip
done
# 非交互式分發(fā)公鑰需要用sshpass指定ssh密碼,通過-o StrictHostKeyChecking=no 跳過SSH鏈接確認(rèn)信息
sh ssh_key_send 執(zhí)行腳本
ansible fengge -m command -a "uname -a"
此時在管理機(jī)上再鏈接客戶機(jī)就不需要密碼了门驾,
總結(jié)
在生產(chǎn)環(huán)境中射赛,ansible的鏈接方式,二選一即可奶是,最好是配置ssh公私鑰密碼登錄