はいっ、というわけでねー、今日はですねー、なんのこっちゃわからんタイトルですねー。@ryosmsです。

どういう状況かといいますと
  1. Proxyを通らないとインターネットに出ていけない環境で
  2. yumのメインのリポジトリはProxy通らなくてもいい場所にあるマシンに
  3. yumのリポジトリを追加する
というケースを想定しています。
具体的に言うとVPCエンドポイント経由でS3(yumのリポジトリ)にアクセスできるけどmackerel-agentをインストールしたいのにアウトバウンドを制限されて親(Proxy)の目の届かないところでは外(インターネット)に遊びに行くことが許可されてない箱入り娘なAmazon Linuxさん(下図の真ん中の人)です。

aws-network


上記のような制限があるので、Mackerelさん公式のインストール方法は普通に動きません。
ということで、shellscriptの内容をProxyを通しながら1つづつ実行しましたよね。

注意事項

  • 以下で出てくる${PROXY_ADDRESS}とか${PROXY_PORT}は読み替えてください
  • Proxyの認証はないものとします
  • Proxyが「*.mackerel.io」とか「*.mackerelio.com」とかへの通信を通してくれるようにしておいてください

GPG-KEYのインストール

まずはMackerelのGPG-KEYをインストールします。wgetで持ってきたので~/.wgetrcにproxyの情報を設定しています。curl派の人は~/.curlrcあたりに「proxy="${PROXY_ADDRESS}:${PROXY_PORT}"」とか設定しておくといいと思います。
$ echo "https_proxy = ${PROXY_ADDRESS}:${PROXY_PORT}" >> ~/.wgetrc
$ echo "http_proxy = ${PROXY_ADDRESS}:${PROXY_PORT}" >> ~/.wgetrc
$ wget https://mackerel.io/file/cert/GPG-KEY-mackerel
$ sudo rpm --import GPG-KEY-mackerel
$ rm GPG-KEY-mackerel

mackerelのyumリポジトリを追加

当然rpmもproxyを通す必要があります。
$ sudo rpm -ivh --httpproxy ${PROXY_ADDRESS} --httpport ${PROXY_PORT} http://yum.mackerel.io/amznlinux/latest/x86_64/mackerel-repo-1-0.noarch.rpm

/etc/yum.repos.d/mackerel.confを編集

confファイルにproxyの設定を追加します。
$ echo "proxy=http://${PROXY_ADDRESS}:${PROXY_PORT}/" | sudo tee -a /etc/yum.repos.d/mackerel.conf

sudo yum install -y mackerel-agent

できた!
あとはmackerel-agentの設定をして起動すればメトリックが投稿されるでしょう。
当然mackerel-agentもproxy経由でメトリックを投稿する必要があると思いますが、こっちの設定は普通にmackerelのヘルプに載っています。

というわけで、よい終末を!

P.S. 9/1(土)にある合同勉強会 in 大都会岡山 -2018 Summer-座駆動LT大会20180901の席がまだまだ余ってるようなので参加してみるといいと思います。

余談

なお、Amazon LinuxのyumリポジトリがS3にある、とか、VPCエンドポイントを作成すればインターネットに出ていけなくてもAmazon Linuxのyumが使える、とかいうことはクラメソさんの記事を読んだらいいと思います。
【小ネタ】えっ、Private SubnetからNATサーバを経由せずにyum updateができるって!?

ついでの余談

今回みたいなケースじゃなくて普通に全部のyumリクエストをproxy経由で行う場合には「/etc/yum.conf」にproxyの設定を書いたらOKっぽいです。
ググれば出てくる