您好,登錄后才能下訂單哦!
一、配置管理遠程命令
master上
#?vi?/srv/salt/shell_test.sls??//加入如下內容 shell_test:???#這是ID ??cmd.script:???#模塊 ????-?source:?salt://test/1.sh????#這里定義的是要執行的shell腳本 ????-?user:?root??#執行它的用戶 #?vi?/srv/salt/test/1.sh?//加入如下內容 #!/bin/bash touch?/tmp/111.txt? if?[?!?-d?/tmp/1233?] then ????mkdir?/tmp/1233 fi 更改top.sls內容 #?vi?/srv/salt/top.sls base: ??'*': ????-?shell_test #?salt?'yw02'?state.highstate
檢查是否有/tmp/111.txt和/tmp/1233
二、配置管理任務計劃
master上
#?vi?/srv/salt/cron_test.sls??//加入如下內容 cron_test: ??cron.present: ????-?name:?/bin/touch?/tmp/111.txt???#這里的name就相當于crontab?-e里的最后一段 ????-?user:?root???#執行它的用戶 ????-?minute:?'*'??#下面對應的就是crontab里的分、時、日、月、周 ????-?hour:?20 ????-?daymonth:?'*' ????-?month:?'*' ????-?dayweek:?'*'
注意,*需要用單引號引起來。當然我們還可以使用file.managed模塊來管理cron,因為系統的cron都是以配置文件的形式存在的。想要刪除該cron,需要增加:
cron.absent: ??-?name:?/bin/touch?/tmp/111.txt
兩者不能共存,要想刪除一個cron,那之前的present就得去掉。
更改top.sls
#?vi?/srv/salt/top.sls base: ??'*': ????-?cron_test #?salt?'yw02'?state.highstate
到yw02上檢查cron:crontab -l,會看到提示# Lines below here are managed by Salt, do not edit
我們不能隨意改動它,否則就沒法刪除或者修改這個cron了。
#?crontab?-l #?Lines?below?here?are?managed?by?Salt,?do?not?edit???#這兩行一定不要動,改了就沒辦法再去管理了。 #?SALT_CRON_IDENTIFIER:/bin/touch?/tmp/111.txt *?20?*?*?*?/bin/touch?/tmp/111.txt???#這一行就是通過腳本定義的,要修改就從腳本修改即可。
三、其他命令
cp.get_file 拷貝master上的文件到客戶端
#?salt?'*'?cp.get_file?salt://test/1.sh??/tmp/123.sh yw02: ????/tmp/123.sh fuxi01: ????/tmp/123.sh
cp.get_dir 拷貝目錄
# salt '*' cp.get_dir salt://test/123 /tmp/
//會自動在客戶端創建123目錄,所以后面不要加123,如果寫成 /tmp/123/ ?則會在/tmp/123/目錄下又創建123目錄。
# salt-run manage.up ? ?顯示存活的minion
# salt '*' cmd.script salt://test/1.sh ? 命令行下執行master上的shell腳本,對機器批量執行。
四、salt-ssh使用
salt-ssh不需要對客戶端做認證,客戶端也不用安裝salt-minion,也不用啟動任何服務,就能夠到對方機器上操作,前提是把本機的公鑰放到對方機器上去,它類似pssh/expect。
安裝很簡單
先安裝好yum源
#?yum?install?-y?https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm #?yum?install?-y?salt-ssh #?vi?/etc/salt/roster?//增加如下內容 fuxi01: ??host:?192.168.149.133 ??user:?root ??passwd:?1346 yw02: ??host:?192.168.149.131 ??user:?root ??passwd:?1346 #?salt-ssh?--key-deploy?'*'?-r?'w'????//出現這種是因為首次登陸時會詢問yes/no,重新ssh連接一下即可。 yw02: ????---------- ????retcode: ????????254 ????stderr: ????stdout: ????????The?host?key?needs?to?be?accepted,?to?auto?accept?run?salt-ssh?with?the?-i?flag: ????????The?authenticity?of?host?'192.168.149.131?(192.168.149.131)'?can't?be?established. ????????ECDSA?key?fingerprint?is?SHA256:Z7xp3qHrdUE3yl4C34LCIrYyaCTvwC/hhZsWu1iZfS4. ????????ECDSA?key?fingerprint?is?MD5:ff:06:a8:bd:b0:d9:2f:72:df:64:07:b2:b0:36:c4:06. ????????Are?you?sure?you?want?to?continue?connecting?(yes/no)?? fuxi01: ????---------- ????retcode: ????????254 ????stderr: ????stdout: ????????The?host?key?needs?to?be?accepted,?to?auto?accept?run?salt-ssh?with?the?-i?flag: ????????The?authenticity?of?host?'192.168.149.133?(192.168.149.133)'?can't?be?established. ????????ECDSA?key?fingerprint?is?SHA256:PZXNkWqC/6h5hUQYkfOM9AMj82OTskLMIB4qLkgeajU. ????????ECDSA?key?fingerprint?is?MD5:99:19:04:c5:11:8d:94:ad:9a:86:40:b9:ad:b9:d4:8f. ????????Are?you?sure?you?want?to?continue?connecting?(yes/no)? ???????? #?salt-ssh?--key-deploy?'*'?-r?'w' yw02: ????---------- ????retcode: ????????0 ????stderr: ????stdout: ?????????17:01:40?up?3?days,?16:58,??2?users,??load?average:?0.00,?0.01,?0.05 ????????USER?????TTY??????FROM?????????????LOGIN@???IDLE???JCPU???PCPU?WHAT ????????root?????tty1??????????????????????1610月19??6:57m??0.24s??0.24s?-bash ????????root?????pts/0????192.168.149.1????10:05????6:55m??0.01s??0.01s?-bash fuxi01: ????---------- ????retcode: ????????0 ????stderr: ????stdout: ?????????17:01:44?up?3?days,?20:23,??2?users,??load?average:?2.00,?1.43,?0.64 ????????USER?????TTY??????FROM?????????????LOGIN@???IDLE???JCPU???PCPU?WHAT ????????root?????tty1??????????????????????1610月19??6:56m??0.10s??0.10s?-bash ????????root?????pts/0????192.168.149.1????17:01???24.00s?12.36s??0.70s?salt-ssh #?ls?-l?/root/.ssh/authorized_keys??//兩臺機器上查看公鑰,時間一致。 -rw-------?1?root?root?393?10月?26?16:59?/root/.ssh/authorized_keys
//第一次執行的時候會自動把本機的公鑰放到對方機器上,然后就可以把roster里面的密碼去掉。
//--key-deploy,如果不加這條,它就不會自動的把公鑰推送到對方機器上去。
現在把/etc/salt/roster中的密碼刪除,再執行salt-ssh --key-deploy '*' -r 'w',同樣也可以執行成功,這樣就是因為把公鑰推送過去了。第一次需要密碼,第二次就不用了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。