Consulは現在、パッケージ マネージャー形式で公開されていません。それを多くのシステムに分散させ、一貫した方法で確実にインストールするための良い方法は何ですか?
8 に答える
fpmを使用して、consul バイナリからパッケージを簡単に作成できることがわかりました。
fpm --verbose -s dir -t rpm -n consul -v 0.4 --url=http://consul.io --vendor=HashiCorp --description "A distributed service discovery tool" ./consul_/consul=/usr/local/bin/consul
このコマンドは、現在の作業ディレクトリに rpm ファイルを作成します。'deb' を -t フラグとともに使用して、代わりに deb パッケージを作成することもできます。
fpm をまだインストールしていない場合は、rubygems を使用してインストールできます。
gem install fpm
FPM は、選択したパッケージ タイプを作成するために必要なツールを必要とするため、同様のシステム (RPM および DEB 用の Red Hat または Debain バリアント) にこれをインストールするのが最適です。
consul は単一のバイナリであり、簡単な (再) 配布と取り扱いに最適です。.deb としてパッケージ化するのは、fpm を使用した単なる 3 ライナーです。
前提条件: fpm をインストールするgem install fpm
consul 0.6 の完全な動作例 (2016 年 1 月現在の最新バージョン):
wget -N https://releases.hashicorp.com/consul/0.6.0/consul_0.6.0_linux_amd64.zip
unzip -o consul_0.6.0_linux_amd64.zip
fpm --force --verbose -s dir -t deb -n consul -v 0.6 \
--url=http://consul.io --vendor=HashiCorp \
--description "A distributed service discovery tool" ./consul=/usr/local/bin/consul
dockerコンテナーとして配信します。
Dockerfileは次のようになります。
- wzipファイルを取得し、解凍します
- データと設定用のディレクトリを作成する
- consul.json 設定ファイルを追加
- 構成とデータ用のボリュームを作成する
- 領事館のポートを公開
- エントリポイントを定義する
Dockerfile は、おおよそ次のようになります。
RUN wget 'https://dl.bintray.com/mitchellh/consul/0.3.1_linux_amd64.zip' -O consul.zip && unzip -d /usr/bin consul.zip
RUN mkdir -p /opt/consul/data /opt/consul/config
ADD consul.json /opt/consul/config/
VOLUME ["/opt/consul/data","/opt/consul/config"]
EXPOSE 8500
ENTRYPOINT ["/usr/bin/consul", "agent", "-config-dir=/opt/consul/config"]
CMD ["-server", "-bootstrap"]
もう 1 つのオプションは、既存の Docker イメージの1 つを再利用することです。
たとえば、 progrium/consulは、Docker エコシステムで動作するように設計された優れたコンテナーです。