一粮呢、初識(shí)運(yùn)維
-
運(yùn)維都做哪些事?
- 1.機(jī)房設(shè)備上下架
- 2.系統(tǒng)初始化
- 3.應(yīng)用環(huán)境初始化
- 4.應(yīng)用的部署 調(diào)試 配置 --->saltstack
- 5.代碼的發(fā)部 ---> jenkins
- 6.服務(wù)監(jiān)控(應(yīng)用監(jiān)控钞艇,系統(tǒng)監(jiān)控(CPU 內(nèi)存 硬盤))
- 7.數(shù)據(jù)備份...
-
自動(dòng)化發(fā)展階段
- 1啄寡,標(biāo)準(zhǔn)化,環(huán)境的統(tǒng)一(軟件一致哩照,版本一致挺物,位置一致)
- 2,文檔化飘弧,(比如宕機(jī)识藤,通過文檔操作)
- 3,工具化次伶,(執(zhí)行腳本痴昧,1,2冠王,3(流程可能亂))
- 4赶撰,web 化,(按固定流程執(zhí)行)
- 5版确,平臺(tái)化扣囊,(運(yùn)維平臺(tái),API接口(拿日志等)绒疗,圖表形式展示(直觀))
- 6侵歇,服務(wù)化
- 7,智能化吓蘑,(換硬盤-->機(jī)械手臂換)
二惕虑、初識(shí)saltstack
saltstack(管理工具)
并行機(jī)制坟冲,python開發(fā),API接口-
主要功能
- 1溃蔫,遠(yuǎn)程執(zhí)行(命令)
- 2健提,配置管理(配置安裝nginx)
- 3,云管理(此處不研究)
-
運(yùn)行方式
- 1伟叛,Local(自己管自己)
- 2私痹,Master、Minion(主從)<-----> 最常見
- 3统刮,Salt SSH
支持系統(tǒng)
CentOS Redhat Fedora Gentoo Debian MAC OS
ubuntu suse freebsd......
Windows(只有Minion紊遵,只能被管)運(yùn)行依賴包,yum安裝侥蒙,一鍵搞定依賴關(guān)系
python
zeromq(saltstack基于RPC
模式完成通信暗膜,用到的消息中間件就是zeromq
)
pyzmp
pycrypto(saltstack信息使用AES
方式加密解密,需要用到pycrypto
包)
msgpack-python
yaml
jinja2
三鞭衩、saltstack操作
-
1学搜、安裝,提前準(zhǔn)備兩臺(tái)虛擬機(jī)论衍,一主一從瑞佩,提前配好epel源
主(master):yum install salt-master -y
從(minion):yum install salt-minion -y
(Ubuntu執(zhí)行):sudo apt-get install salt-minion
-
2、設(shè)為開機(jī)啟動(dòng)
參看鏈接:https://blog.csdn.net/qq_16743379/article/details/51325587
主:systemctl enable salt-master
從:systemctl enable salt-minion
-
3饲齐、配置
主:
- 1钉凌,
vim /etc/salt/master
- 2,搜索
file_roots(輸入斜杠進(jìn)行搜索)
- 3捂人,將下面的注釋打開(注意空格御雕,2個(gè),4個(gè))
file_roots:(在416行) base: - /srv/salt
- 4滥搭,搜索
pillar_roots
- 5酸纲,將下面注釋打開
pillar_roots:(在529行) base: - /srv/pillar
- 6,保存退出瑟匆,啟動(dòng):
systemctl start salt-master
從:(Ubuntu系統(tǒng)編輯內(nèi)容相同闽坡,方式不同)
- 1,
vi /etc/salt/minion
- 2愁溜,
:set nu
疾嗅,找到行號(hào),大概在16行冕象,修改master
的ip
master: 192.168.122.1
冒號(hào)后一個(gè)空格 - 3代承,搜索
#id
(沒有修改過的),大概在78行渐扮。為id做個(gè)標(biāo)識(shí)论悴,名字隨便起掖棉,方便管理。
id: slave-1
冒號(hào)后一個(gè)空格 - 4膀估,保存退出啟動(dòng):
systemctl start salt-minion
- 1钉凌,
-
4幔亥、管理(第一次有一個(gè)認(rèn)證的過程(手動(dòng)認(rèn)證↓,自動(dòng)認(rèn)證(配置文件)))
主:
salt-key
(顯示)
salt-key.pngsalt-key -A
: 允許所有小弟受管制(一般都是-A)
salt-key -a
: 指定某個(gè)小弟受管制[root@master / 02:23:15]# salt-key -A
The following keys are going to be accepted: Unaccepted Keys: slave-1 Proceed? [n/Y] Y Key for minion slave-1 accepted.
-
5察纯、命令組成
命令 :salt
目標(biāo) : '*'(支持正則)模塊 : -->命令
方法 : -->參數(shù)返回
-
6帕棉、官網(wǎng)
- saltstack 命令官網(wǎng):saltstack命令
- saltstack 模塊官網(wǎng):saltstack-models
-
(Ⅰ),檢查主機(jī)是否存活:
salt '*' test.ping
(*目標(biāo)捐寥,所有)(test笤昨,模塊)(ping,方法) slave-1: True (返回)
- 查看test其他命令:
salt '*' sys.list_functions test
-
salt --help
#即可查看salt幫助
[root@master 192.168.199.155 ~]$salt --help Usage: salt [options] '<target>' <function> [arguments] salt命令 參數(shù) 目標(biāo) salt模塊的函數(shù) 遠(yuǎn)程執(zhí)行的參數(shù)
- 查看test其他命令:
-
(Ⅱ)握恳,檢查slave-1是否存活(前提是salt-minion已啟動(dòng)):
salt 'slave-1' test.ping
slave-1: Minion did not return. [No response] (slave關(guān)機(jī),測(cè)試結(jié)果)
-
(Ⅲ)捺僻,執(zhí)行命令乡洼,返回結(jié)果【
cmd.run
】
salt '*' cmd.run 'df -h'
:執(zhí)行'df -h'命令,交互式辦不到匕坯,只能執(zhí)行可以返回結(jié)果的
salt控制執(zhí)行cmd命令 .png -
(Ⅳ)束昵,同步配置文件【文件的分發(fā)(
配置文件+命令
/salt-cp
)】
4.1,配置文件(yaml語法
)葛峻,接下來執(zhí)行命令先創(chuàng)建一個(gè)文件:
mkdir /srv/{salt,pillar}
進(jìn)入到/srv/salt
下
創(chuàng)建sls文件vim host_file.sls
(文件名隨便锹雏,后綴必須是sls)
寫入:(注意空格,一定手寫术奖,不要復(fù)制粘貼)/etc/hosts:(文件路徑) file.managed:(file模塊的managed方法) - source: salt://files/hosts(指定本地文件的路徑) - user: root - group: root - mode: 644
salt文件分發(fā)配置.png
????????進(jìn)入:cd /srv/salt
????????創(chuàng)建:mkdir files
????????進(jìn)入:cd files
????????copy:cp /etc/hosts .
?????????4.2礁遵,執(zhí)行命令,同步文件配置:salt '*' state.sls host_file
?????????4.3采记,或者執(zhí)行佣耐,同樣有效(此命令也可執(zhí)行文件分發(fā)):salt-cp '*' /etc/hosts /etc/
???????????????返回值:{'slave-1': {'/etc/hosts': True}}
?????????4.4,檢測(cè):分別查看主機(jī)和從機(jī)的hosts文件:cat /etc/hosts
唧龄,如果兩者一致兼砖,證明文件分發(fā)成功。
- (Ⅴ)既棺,軟件的安裝【安裝nginx】
5.1讽挟,
cd /srv/salt
(進(jìn)入到salt文件夾)5.2,
vim nginx_install.sls
(寫配置文件丸冕,命名無所謂耽梅,后綴必須為sls)-
5.3,寫入下面內(nèi)容:
salt下載軟件配置.png
salt下載軟件并啟動(dòng)完整配置.png 5.4晨仑,執(zhí)行命令褐墅,
salt '*' state.sls nginx_install
(注意下劃線和中劃線)
因?yàn)樾枰螺d拆檬,所以會(huì)很慢。-
5.5妥凳,驗(yàn)證竟贯,訪問一下:
curl -I 10.0.0.11
返回200即成功,如果失敗逝钥,檢查sls文件屑那、命令、網(wǎng)絡(luò)是否正常艘款。
salt執(zhí)行下載nginx失敗.png
也可以使用
salt '*' pkg.install nginx
(只是下載)
??????????????????salt '*' service.start nginx
(啟動(dòng))
-
(Ⅵ)持际,計(jì)劃任務(wù)(每一個(gè)用戶都有自己的計(jì)劃任務(wù))
查看:salt '*' cron.list_tab root(用戶)
- 6.1,進(jìn)入到salt里哗咆,
vim crontab.sls
- 6.2蜘欲,寫入以下內(nèi)容
前提是從機(jī)
里有ntpdate
文件(沒有需自創(chuàng)),按路徑寫入↓
/usr/sbin/ntpdate times.aliyun.com >>/dev/null: cron.present: - user: root(注意空格晌柬,否則報(bào)錯(cuò)) - minute: '*/5'
(分:minute 時(shí):hour 日:daymonth 月:month 周:dayweek)
-
6.3姥份,執(zhí)行:
salt '*' state.sls crontab
salt執(zhí)行定時(shí)任務(wù)失敗.png
salt執(zhí)行定時(shí)任務(wù)成功.png 6.4,驗(yàn)證:主機(jī)執(zhí)行
salt '*' cron.list_tab root
或者 從機(jī)執(zhí)行crontab -l
查看任務(wù)6.5年碘,修改任務(wù)澈歉,直接修改文件,再執(zhí)行一遍即可屿衅。
- 6.1,進(jìn)入到salt里哗咆,
-
(Ⅶ)埃难,刪除計(jì)劃任務(wù)
- 7.1,進(jìn)入到salt里涤久,
vim del_cron.sls
- 7.2涡尘,寫入一下內(nèi)容
/usr/sbin/ntpdate times.aliyun.com >>/dev/null: cron.absent: - name: /usr/sbin/ntpdate times.aliyun.com >>/dev/null
- 7.3,執(zhí)行:
salt '*' state.sls del_cron
- 7.4拴竹,驗(yàn)證:主機(jī)執(zhí)行
salt '*' cron.list_tab root
或者 從機(jī)執(zhí)行crontab -l
查看任務(wù)
- 7.1,進(jìn)入到salt里涤久,
(Ⅷ)悟衩,檢索靜態(tài)信息數(shù)據(jù)
salt '*' grains.items
:(以鍵值形式展示)
salt '*' grains.item fqdn_ip4
:(只顯示某一個(gè)數(shù)據(jù))
salt '*' grains.item fqdn_ip4 os id
:(顯示多個(gè)數(shù)據(jù))(Ⅸ),其他
查看salt版本:salt-run manage.versions
四栓拜、windows安裝salt-minion
- 1座泳,下載,安裝(自動(dòng)添加環(huán)境變量)
官網(wǎng)安裝:https://repo.saltstack.com/#windows - 2幕与,按提示操作(在文件所在位置打開cmd窗口執(zhí)行):
提示:Salt-Minion-2018.3.3-Py2-AMD64-Setup.exe /S /master=yoursaltmaster /minion-name=yourminionname
操作:Salt-Minion-2018.3.3-Py3-AMD64-Setup.exe /S /master=10.0.0.10 /minion-name=192.168.0.109
(安裝挑势,啟動(dòng)(會(huì)在服務(wù)自動(dòng)開啟,如果沒開啟啦鸣,手動(dòng)開啟)) - 3潮饱,啟動(dòng)后,查看master端(linux機(jī)):
salt-key
salt操控windows系統(tǒng).png - 4诫给,接收香拉,執(zhí)行命令(windows命令和linux命令不同啦扬,有些會(huì)沒有效果)。
?????分發(fā)文件(成功):salt-cp '192.168.0.109' ./test.py C:/
?????查看ip(有結(jié)果):salt '192.168.0.109' cmd.run 'ipconfig'
?????打開計(jì)算機(jī)(沒打開):salt '192.168.0.109' cmd.run 'calc'
salt給windows分發(fā)文件.png
??????查看各個(gè)salt版本:salt-run manage.versions
查看各個(gè)salt版本.png
五凫碌、連接
SaltStack 的通訊及安全機(jī)制:SaltStack 的通訊及安全機(jī)制
SaltStack 詳解:SaltStack 詳解博客
SaltStack 常用命令:SaltStack 常用命令1
SaltStack 常用命令:SaltStack 常用命令2
SaltStack 官網(wǎng):saltstack官網(wǎng)