7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

hubotにデフォルト通信にプロキシサーバを使用する設定をする2016

Last updated at Posted at 2016-03-29

会社はプロキシで良くも悪くも守られているけど…

rubyやwget、nodejsなど、外部から情報をダウンロードするときに邪魔なプロキシサーバ。社内と外部のチャットツールを連携する場合、必ず社内のプロキシを通過する必要がある。
hubotのインストールでも手こずったけど(npm -g config set proxy)
hubotの通信でも手こずったので記録に残します。

ネットの情報

先達の方々は苦心していたようで、hubotが使用するscoped-http-clientを直接いじっちゃえ!という検索結果がよく出るけど、実はhubotはもうプロキシ対応している。

hubot + http proxy メモ

プロキシ対応方法について

Windows8.1 64bitで確認。
nodejsなどは、2016年3月28日時点で公式サイトからDLしたものを特にそのまま使用しています。

注意!

nodejsよく知らないので、間違っていたりする場合があります。
間違っていた場合は、お手数ですがコメントいただけますと幸いです。

公式ドキュメントより

Forwarding all HTTP requests through a proxy
## なんとなく和訳すると

  1. hubotをmoulesとして組み込んでいるフォルダでnpm install proxy-agent する
  2. hubotをmoulesとして組み込んでいるフォルダ(hubotモジュールでなく一番トップディレクトリ)直下のscriptsフォルダにproxy.coffeeを作る。
  3. proxy.coffeeをいい感じに編集する。ポート番号も書いていい。trueとfalseの違いはわかってない。
proxy.coffee
proxy = require 'proxy-agent'
module.exports = (robot) ->
  robot.globalHttpOptions.httpAgent  = proxy('http://my-proxy-server.internal:proxy-port', false)
  robot.globalHttpOptions.httpsAgent = proxy('http://my-proxy-server.internal:proxy-port', true)

覚書

これでプロキシを必ず通るようにできるようだけど、うちの社内はプロキシに認証をかけているので、pug meに失敗する。
wgetみたいに、http://username:password@proxy-server:portみたいなことをやってもダメだった。

そこはやっぱり、hubotのリクエストのところで、proxy-authヘッダでも作らないといけないのかなぁ。それに、内部サーバ向けと外部サーバ向けでプロキシ経路が違うから、その住み分け対処も考えないといけないっすね。

Link

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?