day 38 綜合架構(gòu)批量管理 ansible(自動(dòng)化管理軟件)
課程介紹
1. 批量管理服務(wù)配置
a 主機(jī)清單配置部分
b 掌握模塊功能應(yīng)用
copy(推送) , fetch(拉取) , file(管理數(shù)據(jù)信息/修改屬性 或者 創(chuàng)建/刪除數(shù)據(jù)) ,user(創(chuàng)建用戶) , group(創(chuàng)建用戶) ,yum(下載安裝軟件) ,service(管理服務(wù)運(yùn)行狀態(tài)) ,cron(定時(shí)任務(wù)模塊)
特殊需求:
archive unarchive(壓縮/解壓縮) ,setup(收集信息模塊) , debug(指定輸出相應(yīng)信息) , tmplate(模板模塊) , mysql(數(shù)據(jù)庫(kù)???) lineinfile(類似sed命令 修改替換文件內(nèi)容)
c 掌握劇本功能副本
課程回顧
1. 遠(yuǎn)程管理服務(wù)配置文件
/etc/ssh/sshd_conf 服務(wù)端
/etc/ssh/ssg_conf 客戶端
2. 原創(chuàng)管理服務(wù)防范入侵
a 盡量使用秘鑰登錄
b 盡量減少架構(gòu)中外網(wǎng)地址
c 有外網(wǎng)地址的服務(wù)器,進(jìn)行監(jiān)聽(tīng)
d 防火墻硬件做安全訪問(wèn) 控制
e 監(jiān)控重要文件是否被修改
f 對(duì)重要文件信息上鎖
3. 批量管理服務(wù) ansible
a 概念:同時(shí)并行管理多臺(tái)數(shù)據(jù)
b 作用:實(shí)現(xiàn)批量部署服務(wù)
實(shí)現(xiàn)批量分發(fā)數(shù)據(jù)
實(shí)現(xiàn)批量收集主機(jī)信息
實(shí)現(xiàn)批量自動(dòng)化管理應(yīng)用
c 特點(diǎn):部署安裝簡(jiǎn)單方便
客戶端不需要部署
軟件不需要啟動(dòng)服務(wù)
功能強(qiáng)大
4. ansible部署
管理端: yum install -y ansible
被管理端: 確認(rèn)防火墻和selinux是否關(guān)閉
5. ansible主機(jī)清單配置 /etc/ansible/hosts
方法一:直接將ip地址寫(xiě)入
方法二:分組進(jìn)行配置
方法三:設(shè)置ansible內(nèi)置變量
方法四:嵌入式配置主機(jī)清單
方法五:利用匹配符號(hào)
第四個(gè)模塊, copy 文件模塊 可以講管理端數(shù)據(jù)進(jìn)行批量分發(fā)/也可以移動(dòng)或調(diào)整被管理端數(shù)據(jù)
重要模塊參數(shù):
src : ---指定管理端要分發(fā)的數(shù)據(jù)路徑信息
dest : ---指定數(shù)據(jù)傳輸?shù)奖还芾矶耸裁茨夸浿?br>
mode : ---數(shù)據(jù)傳輸完畢后,設(shè)置數(shù)據(jù)權(quán)限信息
owner : ---數(shù)據(jù)傳輸完畢后,設(shè)置數(shù)據(jù)屬主信息
group : ---數(shù)據(jù)傳輸完畢后,設(shè)置數(shù)據(jù)屬組信息
backup : ---是否開(kāi)啟文件備份==.bak
remote_src : ---指定源的路徑信息,從被管理端進(jìn)行讀取
content : ---可以直接不在管理端創(chuàng)建文件,對(duì)文件進(jìn)行分發(fā),并且可以編輯文件簡(jiǎn)單內(nèi)容
validate : 檢查文件信息的語(yǔ)法錯(cuò)誤以及其他錯(cuò)誤
模塊參數(shù)用法一:
-
ansible 分組 -m copy -a "src=/oldboy/oldboy.txt dest=/oldboy/ mode=600 owner=屬組 group=屬主"
說(shuō)明: 對(duì)目錄進(jìn)行分發(fā)
1. 修改文件權(quán)限信息 和 文件屬主屬組信息
2. 可以在被管理端穿件指定目錄信息 - ansible 分組 -m copy -a "src=/oldboy/ dast=/oldboy/"
說(shuō)明: 對(duì)目錄進(jìn)行分發(fā)
src指定目錄后面有斜線: 傳輸目錄下面的內(nèi)容
src指定目錄后面沒(méi)有斜線: 傳輸整個(gè)目錄
模塊參數(shù)用法二:備份數(shù)據(jù)/還原數(shù)據(jù)\
傳輸備份文件數(shù)據(jù)方法一:
ansible 分組 -m copy -a "src=/oldboy/oldboy.txt dets=/oldboy/ backup=yes"
傳輸備份文件數(shù)據(jù)方法二:
ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/oldboy/oldboy.txt.bak remote_src=yes"
還原數(shù)據(jù)
ansible oldboy -m copy -a "src=/oldboy/oldboy.txt.bak dest=/oldboy/oldboy.txt remote_src=yes"
=================================================================
參數(shù)說(shuō)明
ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/opt/ remote_src=yes"
== 相應(yīng)被管理端 mv /oldboy/oldboy.txt /opt/
ansible oldboy -m copy -a "src=/oldboy/oldboy.txt dest=/opt/"
== 相應(yīng)管理端 scp -rp /oldboy/oldboy.txt xx.xx.xx.xx:/opt/
================================================================
第五個(gè)模塊fstch 文件模塊 進(jìn)行數(shù)據(jù)拉取操作
重要參數(shù):
src : ---指定遠(yuǎn)程主機(jī)需要拉取數(shù)據(jù)信息
dest : ---將數(shù)據(jù)保存到本地管理主機(jī)的什么路徑中
拉取數(shù)據(jù)方法:
ansible oldboy -m fetch -a "src=/opt/password.txt dest=/oldboy"
拉取后的數(shù)據(jù)是根據(jù)源端路徑信息保存
第六個(gè)模塊: file 文件類型 直接修改數(shù)據(jù)屬性/創(chuàng)建或刪除數(shù)據(jù)信息
重要參數(shù):
path : 指定要操作的遠(yuǎn)程主機(jī)數(shù)據(jù)路徑信息
mode : 修改文件權(quán)限信息
owner : 修改文件屬主信息
group : 修改文件屬組信息
state: 狀態(tài)參數(shù)信息:創(chuàng)建目錄(directory)/文件(touch)/軟鏈接(link)/硬鏈接(hard)/還可以刪除文件(absent)/查看普通文件是否存在(file)
recurse : 遞歸修改目錄權(quán)限
用法一: 修改文件屬主/組信息
ansible 主機(jī) -m file -a "path=對(duì)端文件 mode=666 owner=屬主 group=屬組"
修改目錄權(quán)限屬性信息:
ansible 主機(jī) -m file -a "path=/對(duì)端目錄/ mode=666 owner=屬主 group=屬組" 遞歸修改目錄權(quán)限 recurse=yes
用法二: 添加或刪除數(shù)據(jù)信息
創(chuàng)建目錄:
ansible 主機(jī) -m file -a "path=/oldboy/可多級(jí)目錄 state=directory"
創(chuàng)建文件:
ansible 主機(jī) -m file -a "path=/oldboy/oldboy.txt state=touch"
創(chuàng)建軟鏈接:
ansible 主機(jī) -m file -a "src=/oldboy/oldboy.txt path=源目錄 state=link"
創(chuàng)建硬鏈接:
ansible 主機(jī) -m file -a "src=/oldboy/oldboy.txt path=源目錄 state=hard"
刪除文件:
ansible 主機(jī) -m file -a "path=/oldboy/oldboy.txt state=absent"
刪除目錄:
ansible 主機(jī) -m file -a "path=/oldboy/oldboy/ state=absent"
查看普通文件是否存在:
ansible 主機(jī) -m file -a "path=路徑文件 state=file"
第七個(gè)模塊: user 用戶模塊 創(chuàng)建或刪除用戶信息
name : 指定創(chuàng)建用戶名稱
create_home : 創(chuàng)建用戶是否有家目錄
shell : 指定用戶是否能夠登陸系統(tǒng) 虛擬用戶 /sbin/nologin
uid : 指定用戶uid數(shù)值
password : 指定用戶密碼信息 如何使用密文信息設(shè)置密碼
state : 默認(rèn)present表示創(chuàng)建用戶 使用absent刪除用戶信息
group : 指定用戶屬于哪個(gè)用戶組(主要組)==useradd -g
groups : 指定用戶屬于哪個(gè)用戶組(附屬組)==useradd -G
remove=yes : 將用戶家目錄刪除
用法一: 創(chuàng)建用戶用戶
ansible 主機(jī) -m user -a "name=rsync uid=2000 create_home=no shell=/sbin/nologin"(虛擬)
ansible 主機(jī) -m user -a "name=oldboy uid=2001"(普通用戶)
用法二: 設(shè)置用戶密碼信息
ansible 主機(jī) -m user -a "name=oldboy password="
PS:利用user,模塊如何創(chuàng)建密文密碼信息 雙引號(hào)換成單引號(hào)以防解析密文中變量符號(hào)
PS:更新pip python軟件包源方式
用法三: 刪除用戶信息
ansible 主機(jī) -m user -a 'name=oldboy state=absent'
刪除用戶家目錄 remove=yes
第八個(gè)模塊 : group 用戶模塊 創(chuàng)建或刪除用戶組信息
重要參數(shù):
name : 指定創(chuàng)建用戶組名稱信息
gid : 指定創(chuàng)建用戶組id編號(hào)信息
state : 默認(rèn)present指定absent表示刪除用戶組
用法一: 創(chuàng)建指定用戶組信息
ansible 主機(jī) -m group -a "name=oldboy gid=3000"
用法二: 刪除指定用戶組
ansible 主機(jī) -m group -a "name=oldboy state=absent"
第九個(gè)模塊: yum 安裝軟件模塊 安裝軟件/卸載軟件
name : 指定安裝什么軟件
state : 指定狀態(tài)信息安裝軟件(installed , latest , present) 卸載軟件(absent , removed)
用法一: 安裝軟件
ansible 主機(jī) -m yum -a "name=telnet-server state=installed"
用法二: 卸載軟件程序
ansible 主機(jī) -m yum -a "name=telnet-server state=absent"
第十個(gè)模塊: service 系統(tǒng)模塊 控制服務(wù)運(yùn)行狀態(tài)
重要參數(shù):
name : 指定要管理的服務(wù)名稱
state : 指定服務(wù)運(yùn)行狀態(tài) 停止(stopped) 啟動(dòng)(started) 重啟(restarted) 平滑重啟(reloaded)
enabled : 指定服務(wù)是否開(kāi)機(jī)自啟
用法一: 啟動(dòng)服務(wù)等等
ansible 分組 -m server -a "name=rsyncd state=started"
用法二: 設(shè)置服務(wù)開(kāi)機(jī)自啟或關(guān)閉(no)
ansible 分組 -m server -a "name=rsyncd enabled=yes
第十一個(gè)模塊: cron 系統(tǒng)模塊 批量設(shè)置定時(shí)任務(wù)
重要參數(shù) ==(crontab -e)
name : 定義定時(shí)任務(wù)的注釋信息,避免出現(xiàn)重復(fù)的定時(shí)任務(wù)
minute : 指定時(shí)間信息中 分鐘 信息(0-59 */5 0,10) ,是分隔 -是連續(xù)
hour : 指定時(shí)間信息中 小時(shí) 信息(0-23 *)
day : 指定時(shí)間信息中 日期 信息(1-31)
mouth : 指定時(shí)間信息中 月份 信息(1-12)
weekday : 指定時(shí)間信息中 星期 信息(0-6)
job : 指定定時(shí)任務(wù)命令信息
disabled : 注釋任務(wù)信息(yes) 取消注釋(no)
用法一: 設(shè)置定時(shí)任務(wù)
ansible 主機(jī) -m cron -a "name=1 minute=*/5 job=ntpdate ntp1.aliyun.com"
用法二: 刪除定時(shí)任務(wù)
ansible 主機(jī) -m cron -a "name=1 state=absent
用法三: 注釋定時(shí)任務(wù)
ansible 主機(jī) -m cron -a "name=1 minute=*/5 'job=ntpdate ntp1.aliyun.com' disabled=yes"(如果不寫(xiě)任務(wù)時(shí)間信息的話會(huì)把時(shí)間重置)
第十二個(gè)模塊: mount 系統(tǒng)模塊 進(jìn)行批量掛載
src : 掛載存儲(chǔ)設(shè)備信息
path : 掛載點(diǎn)目錄信息
fstype : 掛載的文件系統(tǒng)類型
state : 指定掛載(mounted , present)還是卸載(unmounted , absent)
掛載 : mounted:臨時(shí)掛載存儲(chǔ)目錄信息 永久也掛載了存儲(chǔ)掛載目錄信息 推薦 --- present: 只是實(shí)現(xiàn)永久掛載
卸載: unmounted: 只是實(shí)現(xiàn)臨時(shí)卸載 --- absent: 臨時(shí)卸載 永久也卸載
掛載 : ansible 172.16.1.41 -m mount -a "src=172.16.1.31:/data path="