ansible批量管理工具

2022-07-18 04:00:14 字數 3775 閱讀 6347

一,常見的管理工具

(1)ansible     so easy  500臺以下的伺服器

(2)saltstack   比較複雜

(3)puppet     超級複雜

2,   ansible介紹

ansible利用ssh通道。這樣一來就需要免秘鑰的指令碼

(1)做乙個實驗

vim /etc/ssh/ssh_config  先把這裡邊的

sshd_config是 ssh伺服器的配置檔案

stricthostkeychecking (ask 換成no) (秘鑰時彈出來yes和no關了)

(2)vim /etc/ssh/sshd_config 在看它的配置檔案

17行   port 埠要改成10000以上                                       先不改

38行  root(超級使用者)遠端登入  改成no拒絕     工作中一定要這樣  (但我現在做實驗先選yes)    

(所有遠端方式是不能登入超級使用者的)

43行  開啟公鑰  預設是開的  工作中也是開的。

47行  這行是驗證檔案放的位置,這行不變工作中也是這樣(.ssh/authorized_keys)

65行   密碼驗證 這要是no了 所有密碼登入就失效了,只能秘鑰登入, 要不然就是密碼登入要不就是秘鑰登入,

79行 改成no 這是為提高ssh解析速度。

115行 改成no  禁止dns反向解析。為了加快ssh的連線速度。

改好後:從啟下;     systemctl reload sshd     (但我現在都沒改為了做實驗)

(3)現在我先建乙個超級使用者的秘鑰登入(工作中是不允許的,實驗用)

[root@ctw]#  我現在是超戶的密碼登入  (就是直接用shell用密碼連的虛擬機器)

1, 首先#cd .ssh  進入.ssh目錄

#ssh-keygen            建立秘鑰對

#cd .ssh               進入秘鑰對目錄

2,  把私鑰  id_rsa 拿出來 放到桌面上  (這私鑰是給shell拿的, shell去連虛擬機器就是伺服器所以虛擬機器拿的是公鑰)   

3, 之後得把公鑰改名字#cat id_rsa.pub > authorized_keys

在改公鑰的許可權#chmod 600 authorized_keys

4, 之後再新啟乙個shell            這新啟的shell所登入的虛擬機器就是我現在登入的虛擬機器,  我現在登入的是用密碼方式,  現在我要改為shell方式。

新啟的shell視窗需要設定  新建後左上角「身份驗證」進去後第一行方法選第二個公鑰。使用者名稱選你要登入的使用者(現在選root超戶)

第四行新增上 剛才放在桌面的私鑰  確定,連線  這就是秘鑰對的登入方式。

5,登入進去後,vim /etc/ssh/sshd_config 就可以更改它的配置檔案

65行   密碼驗證 這要是no了 所有密碼登入就失效了,只能秘鑰登入, 要不就密碼登入要不就是秘鑰登入,    現在這行就可以選擇no了   因為我現在是秘鑰登入。(就算普通使用者也不能密碼登陸了)

(4)  接下來我建立乙個普通使用者

1,#useradd yunjisuan

不用設密碼 因為一會我要用秘鑰登入。

而且上一步我已近把密碼登入關閉了

2,我把/root/.ssh 裡的公鑰複製到/home/yunjisuan

#cp authorized_keys /home/yunjisuan

3,#cd /home/yunjisuan

建立.ssh  #mkdir .ssh

4,把/home/yunjisuan下的公鑰給.ssh移過去

#mv authorized_keys .ssh

5,在改.ssh目錄的許可權# chmod 700 .ssh

改.ssh 目錄的屬主屬組都為yunjisuan  #chmod –r yunjisuan.yunjisuan .ssh

-r 遞迴 就是把.ssh目錄下的公鑰authorized_keys  屬主屬組也改成yunjisuan.yunjisuan

6, 現在shell登入就可以了,  私鑰還是剛才那個私鑰,因為公鑰是複製過來的。

現在狀態是我shell連線的普通使用者

(5)現在我用秘鑰登陸的是普通使用者yunjisuan,我要切換到超級使用者    這時得需要密碼但是這樣不行,我需要改變些配置,在超級使用者# visudo 做一下新增:

root             all=(all)                all

yunjisuan      all=            nopasswd:all(免秘鑰)

之後在普通使用者sudo –l        顯示出自己(執行 sudo 的使用者)的許可權   

之後su – root 切超級使用者這樣需要密碼

sudo  su – 免秘鑰直接切換到超級使用者

(6)切換到超級使用者後現在我可以改 配置了

#vim /etc/ssh/sshd_config

17行   port 埠要改成22221

38行  root(超級使用者)遠端登入  改成no拒絕     工作中一定要這樣  (但我現在做實驗先選yes)    

65行   密碼驗證 這要是no了 所有密碼登入就失效了,只能秘鑰登入, 要不然就是密碼登入要不就是秘鑰登入,

79行 改成no 這是為提高ssh解析速度。

115行 改成no  禁止dns反向解析。為了加快ssh的連線速度。

改好後:從啟下;    # systemctl reload sshd

#ss –antup | grep 22221     回車 看下監聽埠

現在我用秘鑰登入普通使用者 改下埠22221,就可以登陸了普通使用者了

然後用:#sudo  su – 免秘鑰直接切換到超級使用者這就能辦公了。

現在這個伺服器只能用秘鑰登陸,而且只能是普通使用者。

3,配置ansible

(1)ansible預設配置檔案在#:ll /etc/ansible/hosts 

#> /etc/ansible/hosts  直接清除

#vim /etc/ansible/hosts

[nginx]    模組名

weba    ansible_ssh_host=192.168.29.146

web2    ansible_ssh_host=192.168.29.147 這個用密碼登入後邊加上密碼ansible_ssh_pass=666666 寫在ip後邊

在有秘鑰的情況下這就配置完了

把公鑰給weba發過去放在他~/.ssh裡

# ssh 192.168.29.146  看能不能連線上

之後#ansible  weba  -m ping           (-m ping就是看下目標通不通)

#ansible 被管理範圍 –m 模組 –a 具體命令

(2)如果#ansible nginx –m ping           被管理範圍是模組名那麼這兩個內容一起分發。

如果#ansible all –m ping              所有模組全都發。

4,模組

1,command模組   是給對方分發命令。  不支援管道符和重定向

#ansible all –m command –a 『uptime』    獲取全部對方的平均負載值

#ansible all –m command –a 『hostname -i』   獲取對方所有裝置的ip位址 

這個模組已經淘汰 完全可以用  shell代替,  他是支援管道符和重定向的。

未完

Ansible遠端管理工具

目 錄 第1章 ansible 第一章 ansible的簡介 1 ansible的軟體結構。2 ansible的特性。第二章 ansible的基礎應用 1 ansible管理端的安裝。2 ansible被管控主機的定義。3 配置管理節點基於ssh秘鑰登入被管理節點。4 ansible命令的用法介紹。...

管理工具ansible的部署

管理主機 172.16.1.30 被管主機 172.16.1.31 第一步 首先對管理主機進行本地hosts解析 vi etc hosts cat etc hosts 172.16.1.30 ansible 172.16.1.31 zabbix 然後將本地的hosts檔案同步到被管理主機 scp e...

輕量級批量管理工具pssh

pssh工具 pssh工具是個輕量級的批量管理工具,相比同型別的開源工具 ansible,saltstack,他比較輕量級,需要對管理的主機做秘鑰認證 ansible是可以做秘鑰認證,也可以通過配置檔案來實現,而saltstack 需要在每個待管理的主機安裝 minion。使用該工具步驟 yum 安...