簡體   English   中英

木偶,wget和代理

[英]Puppet, wget and proxy

我正在嘗試在發出wget調用之前設置代理:

file { "/etc/environment":
    content => inline_template("
        http_proxy=http://10.0.12.13:8080
        https_proxy=http://10.0.12.13:8080")
}

問題是我必須重新啟動Puppet的會話才能正確加載環境。

我還嘗試在exec語句中導出變量:

exec { "proxy-export-vars":
    provider => "shell",
    command => "export http_proxy=http://10.0.12.13:8080 && export https_proxy=http://10.0.12.13:8080",
}

問題是 - 如何在不重新啟動會話和木偶申請流程的情況下加載環境設置?

更新

WGET puppet插件使用頂級范圍變量搜索代理設置。 因此,訣竅是在頂級作用域中定義這些變量,即在節點定義之前。 完整的工作代碼:

$http_proxy = "http://10.0.12.13:8080"
$https_proxy = "http://10.0.12.13:8080"

node 'machine' {

    # ...
}

從現在開始, WGET puppet插件將使用這些代理設置獲取資源。

為單個exec資源設置環境變量的最簡單方法是使用environment屬性。 請參閱此處的文檔。 例如:

exec {'fetch something':
  environment => [
    'http_proxy=http://10.0.12.13:8080',
    'https_proxy=http://10.0.12.13:8080',
  ],
  command => '/usr/bin/wget -o /tmp/myfile http://myserver/myfile',
}

你的第二次嘗試......

exec { "proxy-export-vars":
    provider => "shell",
    command => "export http_proxy=http://10.0.12.13:8080 && export https_proxy=http://10.0.12.13:8080",

...會失敗,因為(a) export是一個shell內置命令,所以Puppet將無法exec它,因為沒有相應的二進制文件......和(b)即使它可以,它也不會做你想做的事,因為設置這樣的環境變量不是持久的 - 它只會影響當前進程及其子進程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM