一,常見的管理工具
(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 安...