day 37 綜合架構批量管理 ansible
課程介紹
1. 遠程管理配置文件參數(shù)
2. 遠程管理防范入侵方法
3. 批量管理服務概念作用
4. 批量管理服務安裝部署
5. 批量管理服務配置應用
a 主機清單配置
b 掌握模塊功能應用
c 掌握劇本功能配置
課程回顧
1. 遠程管理服務:
SSH 22端口 密文傳輸 安全性高
telnet 23端口 明文傳輸 安全性低
2. 秘鑰的作用:
利用秘鑰進行加密數(shù)據,利用秘鑰進行用戶身份認證
3. 基于密碼連接的過程和基于秘鑰連接的過程
4. 分發(fā)公鑰腳本編寫
遠程管理服務配置文件
/etc/ssh/sshd_config - - - ssh服務端配置文件
/etc/ssh/ssh_config - - - ssh客戶端配置文件
grep -vE "^$|^# " /etc/ssh/sshd_config
#port 22 - - - 指定端口號 換一換 52113
#ListenAddress 0.0.0.0 - - - 任意主機地址都進行監(jiān)聽
PS: 所有服務監(jiān)聽的地址只能是本地網卡上有的地址
#PermitRootLogin yes - - - 是否允許root用戶遠程登錄 oldboy--su - (jumpserver)
#PermitEmptyPasswords no - - - 是否需要登錄密碼
#GSSAPIAutentication yes - - - 使用GSSAPI認證方式進行遠程連接 影響ssh遠程連接速率
#UseDNS yes - - - 是否進行DNS反向解析 影響ssh遠程連接速率
03. 遠程管理防范入侵
1. 盡量使用秘鑰認證,不要使用密碼認證(密碼復雜度 定期修改)\
2. 盡量讓架構中的服務器沒有外網網卡
3. 對于擁有外網服務器,做好服務地址監(jiān)聽,提高安全性(只監(jiān)聽虛擬地址)
4. 防火墻服務/硬件,根據業(yè)務情況,做好安全訪問控制 ASL訪問控制 ASA
5. 監(jiān)控系統(tǒng)重要文件是否被修改 /etc/porfile (整個/etc/ 整個/var/) inotify實時監(jiān)控,對比指紋信息
6. 給重要文件信息上鎖
- 用戶相關文件上鎖: (passwd shadow group groupshadow)
- 服務程序運行相關文件上鎖: (rc.local peofile.d/ crond)
- 系統(tǒng)環(huán)境配置相關文件: (pordile bashrc ifcfg-eth0 reslove.conf rsyncd.conf)
批量管理服務概念介紹 ansible saltstack
1. 同時并行管理多臺主機
a 實現(xiàn)批量分發(fā)數(shù)據信息
b 實現(xiàn)批量部署軟件服務
c 實現(xiàn)批量收集系統(tǒng)信息: 資產管理
d 實現(xiàn)批量自動管理應用: 代碼上線 服務重啟操作
2. ansible軟件特點
a 部署安裝簡單方便
b 軟件不需要啟動服務
c 客戶端不需要進行配置
d 功能作用非常強大
ansible軟件部署過程:
管理端:
第一個里程: 安裝軟件
yum install -y ansible
ansible.cfg - - - ansible程序配置文件 默認配置即可
hosts - - - 已知清單文件 配置時直接添加被管理端ip即可
roles - - - 把playbook根據功能,如handler驴一,tasks等分門別類的放在在各自的子目錄下休雌,形成一個集合,就是角色肝断,建議把角色放在固定的目錄下杈曲,目錄可以ansible的配置文件中的roles_path來定義驰凛。
命令語法結構
ansible 管理誰 -m 模塊信息 -a 具體使用模塊什么參數(shù)
ansible 172.16.1.41 -m ping
遇到問題:鏈接拒絕
排錯一: 被管理端端口配置信息 /etc/ssh/sshd_config 可能設置錯誤
排錯二: 權限拒絕:
分發(fā)公鑰信息
排錯三: 沒有主機信息: [root@m01 ansible]# ansible 172.16.1.31 -m ping
[WARNING]: Could not match supplied host pattern, ignoring: 172.16.1.31
[WARNING]: No hosts matched, nothing to do
只有主機清單中定義主機信息,可以被ansible管理
被管理端:
確認防火墻和selinux安全服務是否關閉
對比saltstack 安裝部署:https://blog.51cto.com/pankuo/1982622?tdsourcetag=s_pcqq_aiomsg
如何配置使用軟件
1. 主機清單配置
vim /etc/ansible/hosts
172.16.1.41 - - - ansible管理端可以管理的主機信息
主機清單配置方法:
方法一: 直接寫上管理主機ip地址信息
172.16.1.41
172.16.1.31
172.16.1.7
進行測試:
ansible 172.16.1.41 -m ping
ansible all -m ping
方法二: 按照分組信息配置
[rsync_server]
172.16.1.41
[rsync_client]
172.16.1.31
172.16.1.7
進行測試:ansible rsync_server -m ping
172.16.1.41 | SUCCESS => {
方法三: 設置管理主機連接參數(shù)(ansible程序內置變量)信息
[rsync_server]
172.16.1.41 ansible_user=root ansible_password=654321 ansible_port=22
[rsync_server]
定義名字 ansible_host=172.16.1.41 ansible_password=654321 ansible_port=22(需要先ssh 然后yes)
方法四: 嵌入式配置主機清單
[rsync:children]
rsync_server
rsync_client
進行測試:ansible rsync -m ping
或者: 對所在組統(tǒng)一調用變量
[rsync_server]
172.16.1.41
[rsync_server:vars]
ansible_user=root
ansible_port=22
ansible_password=654321
方法五: 使用匹配符號信息,匹配多個主機
[rsync_server]
172.16.1.[1:7]
內置變量
ansible_user=root ---登錄用戶
ansible_password=654321 ---用戶密碼
ansible_port=22 ---連接端口
對端主機名 ansible_host=172.16.1.41 ---可以使用主機名稱進行管理
官網參考: https://docs.ansible.com
官網需要關注的模塊.png
2. 掌握功能模塊
補充:如何學習模塊使用方法
1. 簡單了解模塊作用
command - Execute commands on targets - - - 在目標主機上執(zhí)行命令模塊
2. 模塊詳細說明
3. 掌握模塊參數(shù)用法 根據樣例學習參數(shù)信息
補充:ansileb命令顏色提示
1. 綠色: 對主機信息進行查看,操作執(zhí)行成功
2. 黃色: 對主機信息進行查看,對系統(tǒng)信息有調整更改
3. 紫色: 建議,忠告信息 提示更專業(yè)的模塊
4. 紅色: 錯誤信息
第一個模塊: command 命令模塊 批量執(zhí)行命令 默認模塊
ansible oldboy -m command -a "/server/scripts/create_user.sh"
第二個模塊: shell 命令模塊 批量執(zhí)行命令 萬能模塊
ansible oldboy -m shell -a "yum install -y hotp"
ansileb oldboy -m shell -a "cd /tmp;pwd"
PS: 用法問題:1.不如專業(yè)模塊執(zhí)行批量管理功能效率高2.不像專業(yè)模塊具有冪等性(=可以執(zhí)行多次)
第三個模塊: scripts 命令模塊 批量運行腳本
ansible oldboy -m scripts -a mazi.sh
專業(yè)模塊與shell全能模塊執(zhí)行腳本對比
shell
第一個里程: 編寫腳本
第二個里程: 將腳本進行分發(fā)
ansible oldboy -m copy -a "src=/server/scripts/create_user.sh dest=/server/scripts/"
第三個里程: 修改腳本權限
ansible oldboy -m file -a "path=/server/scripts/create_user.sh mode=755"
第四個里程: 批量執(zhí)行腳本
ansible oldboy -m shell -a "/server/scripts/create_user.sh"
第三個模塊: script 命令模塊 批量運行腳本
第一個里程: 編寫腳本
第二個里程: 批量執(zhí)行腳本
ansible oldboy -m script -a "/server/scripts/create_user.sh"
課程知識總結:
1. ssh遠程管理服務配置文件 監(jiān)控參數(shù)作用
2. ssh遠程管理服務防范入侵
3. ansible軟件功能作用
4. ansible軟件部署過程
5. ansible軟件配置應用
a ansible主機清單配置方法 5種方法
b ansible主機模塊功能應用 3個模塊 command(默認模塊) shell(萬能模塊) script(批量執(zhí)行腳本模塊)
任務:
01. ansible利用域名管理主機時, 每次都需要有yes/no確認, 如何實現(xiàn)免交互
02. 以下四個內置變量有什么用
ansible_become
ansible_become_method
ansible_become_user
ansible_become_password
03. 自學兩個模塊使用方法
expect – Executes a command and responds to prompts
telnet – Executes a low-down and dirty telnet command