Puppet exec资源介绍(二十六)
exec資源:
主要功能調用系統命令,完成系統管理的基礎操作.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | exec?{?'resource?title': ??command?????=>?#?(namevar)?The?actual?command?to?execute.??Must?either?be... ??creates?????=>?#?A?file?to?look?for?before?running?the?command... ??cwd?????????=>?#?The?directory?from?which?to?run?the?command.??If? ??environment?=>?#?Any?additional?environment?variables?you?want?to? ??group???????=>?#?The?group?to?run?the?command?as.??This?seems?to... ??logoutput???=>?#?Whether?to?log?command?output?in?addition?to... ??onlyif??????=>?#?A?test?command?that?checks?the?state?of?the... ??path????????=>?#?The?search?path?used?for?command?execution... ??provider????=>?#?The?specific?backend?to?use?for?this?`exec... ??refresh?????=>?#?An?alternate?command?to?run?when?the?`exec... ??refreshonly?=>?#?The?command?should?only?be?run?as?a?refresh... ??returns?????=>?#?The?expected?exit?code(s).??An?error?will?be... ??timeout?????=>?#?The?maximum?time?the?command?should?take.??If... ??tries???????=>?#?The?number?of?times?execution?of?the?command... ??try_sleep???=>?#?The?time?to?sleep?in?seconds?between... ??umask???????=>?#?Sets?the?umask?to?be?used?while?executing?this... ??unless??????=>?#?A?test?command?that?checks?the?state?of?the... ??user????????=>?#?The?user?to?run?the?command?as.??Note?that?if... ??#?...plus?any?applicable?metaparameters. } |
參數解釋:
command:指定要執(zhí)行的系統命令,必須為被執(zhí)行命令的絕對路徑.
creates:此參數會創(chuàng)建一個臨時文件,當此臨時文件不存在時exec調用系統命令才會執(zhí)行成功,防止出現同一時刻多次執(zhí)行的情況.
cwd:系統命令執(zhí)行的路徑,指定目錄不存在,命令執(zhí)行將會失敗.
environment:添加系統命令的附加環(huán)境變量,也可以加入自己的path環(huán)境變量來覆蓋系統的環(huán)境變量.添加多個環(huán)境變量需要使用數組指定.
group:執(zhí)行命令運行的賬戶組.
logoutput:決定是否記錄輸出日志信息.默認會根據exec資源的日志等級來記錄輸出信息,使用on_failure時只有命令執(zhí)行有誤的情況下才會記錄輸出信息.值可以為true、false、on_failure和任何合法的日志等級.
onlyif:只有onlyif指定命令執(zhí)行返回結果為0的時候,命令才會執(zhí)行.
path:命令執(zhí)行的搜索路徑,如果path沒有定義,命令使用絕對路徑,路徑可以以數組或以冒號分割的形式來定義.
refresh:刷新命令執(zhí)行狀態(tài).
refreshonly:作為1個更新機制,當依賴的對象改變時命令才會執(zhí)行.exec資源通過subscribe和refreshonly監(jiān)聽到依賴文件的狀態(tài),則出發(fā)exec資源的執(zhí)行.
returns:指定預期的返回碼,如果執(zhí)行的命令返回其他的代碼將會出現錯誤,默認是0,可以指定一個單一的值也可以指定一個包含多個值的數組.
timeout:指定命令運行的超時時間,單位為秒,如果命令執(zhí)行的時間超過了timeout設定的時間,就會認為命令執(zhí)行失敗并且會停止該命令.設置為0表示沒有超時的限制.
tries:命令執(zhí)行重試次數,默認為1.設置這個值之后會重試設置的次數知道正確的代碼返回.
try_sleep:設置命令重試的時間間隔,單位是秒.
user:指定執(zhí)行命令的賬戶.
provider:目前支持posix標準、shell和windows.
示例一:
修改selinux的值.
| 1 2 3 4 5 6 | exec?{"selinux": ????command?=>?"sed?-i?'/^SELINUX=/s/=.*/=disabled/g'?/etc/sysconfig/selinux", ????path?=>?["/bin/","/sbin/","/usr/bin/","/usr/sbin/"], ????user?=>?root, ????group?=>?root, } |
示例二:
訂閱haproxy.cfg文件發(fā)生變化就重啟haproxy服務:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class?haproxy?{ ????include?haproxy::service } class?haproxy::service?{ ????file?{'/etc/haproxy/haproxy.cfg': ????????ensure?=>?present, ????????source?=>?'puppet:///modules/haproxy/haproxy.cfg', ????} ????exec?{"/etc/init.d/haproxy?restart": ????????path?=>?['/sbin','/bin',], ????????command?=>?'service?haproxy?restart', ????????subscribe?=>?File['/etc/haproxy/haproxy.cfg'], ????????timeout?=>?'5', ????????refreshonly?=>?true, ????????tries???=>?'2', ????????try_sleep?=>?'3', ????} } |
agent運行結果:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | [root@sh-web1?haproxy]#?puppet?agent?-t Notice:?Ignoring?--listen?on?onetime?run Info:?Retrieving?pluginfacts Info:?Retrieving?plugin Info:?Loading?facts Info:?Caching?catalog?for?sh-web1.localdomain Info:?Applying?configuration?version?'1508344014' Notice:?/Stage[main]/Haproxy::Service/File[/etc/haproxy/haproxy.cfg]/content:? ---?/etc/haproxy/haproxy.cfg2017-10-19?00:19:21.116720774?+0800 +++?/tmp/puppet-file20171019-127476-1tpjcag-02017-10-19?00:26:55.400720142?+0800 @@?-1,86?+1,86?@@ -#--------------------------------------------------------------------- -#?Example?configuration?for?a?possible?web?application.??See?the -#?full?configuration?options?online. -# -#???http://haproxy.1wt.eu/download/1.4/doc/configuration.txt -# -#--------------------------------------------------------------------- - -#--------------------------------------------------------------------- -#?Global?settings -#--------------------------------------------------------------------- -global -????#?to?have?these?messages?end?up?in?/var/log/haproxy.log?you?will -????#?need?to: -????# -????#?1)?configure?syslog?to?accept?network?log?events.??This?is?done -????#????by?adding?the?'-r'?option?to?the?SYSLOGD_OPTIONS?in -????#????/etc/sysconfig/syslog -????# -????#?2)?configure?local2?events?to?go?to?the?/var/log/haproxy.log -????#???file.?A?line?like?the?following?can?be?added?to -????#???/etc/sysconfig/syslog -????# -????#????local2.*???????????????????????/var/log/haproxy.log -????# -????log?????????127.0.0.1?local2 - -????chroot??????/var/lib/haproxy -????pidfile?????/var/run/haproxy.pid -????maxconn?????4000 -????user????????haproxy -????group???????haproxy -????daemon - -????#?turn?on?stats?unix?socket -????stats?socket?/var/lib/haproxy/stats - -#--------------------------------------------------------------------- -#?common?defaults?that?all?the?'listen'?and?'backend'?sections?will -#?use?if?not?designated?in?their?block -#--------------------------------------------------------------------- -defaults -????mode????????????????????http -????log?????????????????????global -????option??????????????????httplog -????option??????????????????dontlognull -????option?http-server-close -????option?forwardfor???????except?127.0.0.0/8 -????option??????????????????redispatch -????retries?????????????????5 -????timeout?http-request????10s -????timeout?queue???????????1m -????timeout?connect?????????10s -????timeout?client??????????1m -????timeout?server??????????1m -????timeout?http-keep-alive?10s -????timeout?check???????????10s -????maxconn?????????????????3000 - -#--------------------------------------------------------------------- -#?main?frontend?which?proxys?to?the?backends -#--------------------------------------------------------------------- -frontend??main?*:5000 -????acl?url_static???????path_beg???????-i?/static?/images?/javascript?/stylesheets -????acl?url_static???????path_end???????-i?.jpg?.gif?.png?.css?.js - -????use_backend?static??????????if?url_static -????default_backend?????????????app - -#--------------------------------------------------------------------- -#?static?backend?for?serving?up?images,?stylesheets?and?such -#--------------------------------------------------------------------- -backend?static -????balance?????roundrobin -????server??????static?127.0.0.1:4331?check - -#--------------------------------------------------------------------- -#?round?robin?balancing?between?the?various?backends -#--------------------------------------------------------------------- -backend?app -????balance?????roundrobin -????server??app1?127.0.0.1:5001?check -????server??app2?127.0.0.1:5002?check -????server??app3?127.0.0.1:5003?check -????server??app4?127.0.0.1:5004?check - +#--------------------------------------------------------------------- +#?Example?configuration?for?a?possible?web?application.??See?the +#?full?configuration?options?online. +# +#???http://haproxy.1wt.eu/download/1.4/doc/configuration.txt +# +#--------------------------------------------------------------------- + +#--------------------------------------------------------------------- +#?Global?settings +#--------------------------------------------------------------------- +global +????#?to?have?these?messages?end?up?in?/var/log/haproxy.log?you?will +????#?need?to: +????# +????#?1)?configure?syslog?to?accept?network?log?events.??This?is?done +????#????by?adding?the?'-r'?option?to?the?SYSLOGD_OPTIONS?in +????#????/etc/sysconfig/syslog +????# +????#?2)?configure?local2?events?to?go?to?the?/var/log/haproxy.log +????#???file.?A?line?like?the?following?can?be?added?to +????#???/etc/sysconfig/syslog +????# +????#????local2.*???????????????????????/var/log/haproxy.log +????# +????log?????????127.0.0.1?local2 + +????chroot??????/var/lib/haproxy +????pidfile?????/var/run/haproxy.pid +????maxconn?????4000 +????user????????haproxy +????group???????haproxy +????daemon + +????#?turn?on?stats?unix?socket +????stats?socket?/var/lib/haproxy/stats + +#--------------------------------------------------------------------- +#?common?defaults?that?all?the?'listen'?and?'backend'?sections?will +#?use?if?not?designated?in?their?block +#--------------------------------------------------------------------- +defaults +????mode????????????????????http +????log?????????????????????global +????option??????????????????httplog +????option??????????????????dontlognull +????option?http-server-close +????option?forwardfor???????except?127.0.0.0/8 +????option??????????????????redispatch +????retries?????????????????3 +????timeout?http-request????10s +????timeout?queue???????????1m +????timeout?connect?????????10s +????timeout?client??????????1m +????timeout?server??????????1m +????timeout?http-keep-alive?10s +????timeout?check???????????10s +????maxconn?????????????????3000 + +#--------------------------------------------------------------------- +#?main?frontend?which?proxys?to?the?backends +#--------------------------------------------------------------------- +frontend??main?*:5000 +????acl?url_static???????path_beg???????-i?/static?/images?/javascript?/stylesheets +????acl?url_static???????path_end???????-i?.jpg?.gif?.png?.css?.js + +????use_backend?static??????????if?url_static +????default_backend?????????????app + +#--------------------------------------------------------------------- +#?static?backend?for?serving?up?images,?stylesheets?and?such +#--------------------------------------------------------------------- +backend?static +????balance?????roundrobin +????server??????static?127.0.0.1:4331?check + +#--------------------------------------------------------------------- +#?round?robin?balancing?between?the?various?backends +#--------------------------------------------------------------------- +backend?app +????balance?????roundrobin +????server??app1?127.0.0.1:5001?check +????server??app2?127.0.0.1:5002?check +????server??app3?127.0.0.1:5003?check +????server??app4?127.0.0.1:5004?check + Info:?Computing?checksum?on?file?/etc/haproxy/haproxy.cfg Info:?/Stage[main]/Haproxy::Service/File[/etc/haproxy/haproxy.cfg]:?Filebucketed?/etc/haproxy/haproxy.cfg?to?puppet?with?sum?395150f853e91c149a7b18753c09a274 Notice:?/Stage[main]/Haproxy::Service/File[/etc/haproxy/haproxy.cfg]/content:?content?changed?'{md5}395150f853e91c149a7b18753c09a274'?to?'{md5}034aa86fec81774e5f81c691df0d92a3' Info:?/Stage[main]/Haproxy::Service/File[/etc/haproxy/haproxy.cfg]:?Scheduling?refresh?of?Exec[/etc/init.d/haproxy?restart] Notice:?/Stage[main]/Haproxy::Service/Exec[/etc/init.d/haproxy?restart]:?Triggered?'refresh'?from?1?events Notice:?/Stage[main]/Admin/Exec[selinux]/returns:?executed?successfully Notice:?Finished?catalog?run?in?0.59?seconds |
注意:puppet文件中改變一個參數的值更新,發(fā)現已經觸發(fā)重啟命令.
總結
以上是生活随笔為你收集整理的Puppet exec资源介绍(二十六)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理解 Neutron FWaaS - 每
- 下一篇: 电脑无故弹出yyy102.html网页的