CentOS 7を使用したAlibaba Cloud ECSインスタンスへのHarborのインストールと設定


このチュートリアルでは、CentOS 7を使用したAlibaba Cloud Elastic Compute Service (ECS)インスタンスにHarborをインストールして設定します。

本ブログは英語版からの翻訳です。オリジナルはこちらからご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。

前提条件

  • Alibaba Cloud Elastic Compute Service (ECS)を有効化し、有効な支払い方法を確認する必要があります。新規ユーザーの場合は、Alibaba Cloudアカウントで無料アカウントを取得することができます。ECSインスタンスのセットアップ方法がわからない場合は、このチュートリアルまたはクイックスタートガイドを参照してください。ECSインスタンスは、少なくとも1GBのRAMと1つのCoreプロセッサを搭載している必要があります。
  • Alibaba Cloudから登録されたドメイン名。すでにAlibaba Cloudまたは他のホストからドメインを登録している場合は、そのドメインネームサーバーレコードを更新することができます。
  • ドメイン名は、あなたのAlibaba Cloud ECSのIPアドレスを指している必要があります。
  • サーバーのホスト名を設定します。
  • アリババクラウドのVNCコンソールまたはPCにインストールされているSSHクライアントにアクセスする 前提条件が完了したら、Alibaba Cloudアカウントのダッシュボードで利用できるSSHクライアントまたはVNCコンソールを介して、rootユーザー名とパスワードを使ってrootユーザーとしてログインします。

Alibaba Cloud ECSインスタンスのセットアップ

ルート権限を持つユーザーの追加

最初のステップでは、新しいユーザーを追加して sudo 権限を与えます。sudo 権限を与えることで、このユーザは必要に応じてシステム上で管理者権限の変更を行うことができます。このユーザは、日常的に SSH 経由でログインするために使用されます。このユーザを追加したら、様々な攻撃からサーバを守るために、rootユーザへのリモートrootアクセスを無効にします。

新しいユーザーアカウントを作成するには、以下のコマンドを使用します。

#  adduser aareez 

ここで、"areeez" は任意のユーザー名を指定できます。

追加したユーザ名にパスワードを設定する必要があります。パスワードを設定するには、以下のコマンドを実行します。

#  passwd aareez 

希望のパスワードを設定し、希望のパスワードを再入力してからEnterを押します。データが正しいことを確認するには、Yを入力してEnterを押します。

これでsudoユーザーのグループにユーザー名を割り当てて管理者権限を与えます。このために、/etc/sudoersファイルをチェックして、sudoersグループが有効になっているかどうかを確認します。そのために、以下のコマンドを実行します。

#  visudo 

上記コマンドを実行するとファイルが開きますので、開いたファイルの中から以下の行を探してください。

デフォルトでは、2行目の %wheel ALL=(ALL:ALL) ALL がコメントされていることがあります (ハッシュ # で始まる )。そのため、ユーザ名を sudoers に追加した後でも sudo を使用するとエラーになります。この問題を防ぐには、この行が '#' 記号で始まる場合は、この記号を削除し、Esc キーを押しながら :x と入力して Enter キーを押して変更を保存してください。

ここで、以下のコマンドを実行して、ユーザー名「aareez」「wheel」グループに追加します。

#  usermod -aG wheel aareez 

上記コマンド実行後、以下のコマンドを実行することで、そのグループのメンバーシップを確認することができます。

#  groups aareez 

あなたのユーザ名が sudoers グループに追加され、任意の root コマンドを実行できるようになりました。

新しいユーザ名とパスワードを使ってログインしてください。または、以下のコマンドでユーザを切り替えます。

#  su - aareez 

現在、新しいアカウントからログインしていることが確認できます。これを確認したい場合は、以下のコマンドを使用します。

#  whoami 

wget のインストール

URLからファイルをダウンロードするにはwgetをインストールする必要があります。以下のコマンドを実行してください。

#  sudo yum install wget 

パスワードの入力を求められますが、その後、確認メッセージ 「Is this ok?」が表示されます。Yを入力してEnterキーを押します。

nano-editorのインストール

nano編集ファイルをインストールする必要があります。以下のコマンドを実行してください。

#  sudo yum install nano 

確認メッセージ「Is this ok?」が表示されます。Y と入力して Enter キーを押します。

epel-releaseをインストール

epel-releaseをインストールしてepelリポジトリをインポートする必要があります。以下のコマンドを実行します。

#  sudo yum install epel-release 

確認メッセージ「Is this ok?」が表示されます。Yと入力してEnterキーを押します。

CentOS 7システムのアップデート

何らかのパッケージのインストールを進める前に、以下のコマンドを使用して CentOS システムをアップデートしてください。このコマンドを実行するには、root ではないユーザから sudo 権限でログインすることを忘れないでください。

まず、以下のコマンドを実行してキャッシュをクリアします。

#  sudo yum clean all 

これで、以下のコマンドでシステムを更新します。

#  sudo yum -y update 

yum-utils のインストール

yum-utils をインストールして yum utils をインポートする必要があります。

以下のコマンドを実行します。

#  sudo yum install yum-utils 

確認メッセージ「Is this ok?」が表示されます。Yと入力してEnterを押します。

Docker CEとDocker Composeのインストール

Docker CEのインストール

Docker ceとDocker composeをインストールするには、rootユーザーでログインすることをお勧めします。

#  su - root 

まず、docker-ceをインストールします。以下のコマンドを実行してdockerのリポジトリを行います。

#  yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 

以下のコマンドを実行します。

#  yum install docker-ce 

確認メッセージ「Is this ok?」が表示されます。Yを入力してEnterキーを押します。
再度尋ねられるので 「Is this ok? 」Yと入力してEnterキーを押します。

python-pipをインストール

また、python-pipをインストールする必要があります。以下のコマンドを実行します。

#  yum install python-pip 

Dockerのインストール Compose

docker-composeをインストールする必要があります。以下のコマンドを実行して、最新版のdocker-composeを取得します。

#  pip install docker-compose 

あとは以下のコマンドでdockerを起動する必要があります。

#  systemctl start docker 

dockerが正常に動作しているかどうかを確認するには、以下のコマンドを実行します。

#  docker run hello-world 

Harborの設置

Harborをインストールする前に、sudo権限で自分のユーザーに切り替えます。私の場合、ユーザー名はaareezですが、以下のコマンドで自分のユーザー名に置き換えてください。

#  su - aareez 

Harborをインストールするには、リリースページからバイナリをダウンロードする必要があります。バイナリは、オフラインだけでなく、オンラインインストーラで利用可能です。お好みのものをお使いください。

オンラインインストーラの場合
オンラインインストーラの場合は、以下のコマンドを実行します。

#  wget https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-online-installer-v1.2.0.tgz 

オフラインインストーラの場合
オンラインインストーラの場合は、以下のコマンドを実行します。

#  wget https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-offline-installer-v1.2.0.tgz 

次のコマンドでパッケージを展開します。

**オンラインインストーラの場合

#  tar -xvf harbor-online-installer-v1.2.0.tgz 

**オフラインインストーラの場合

#  tar -xvf harbor-offline-installer-v1.2.0.tgz 

SSL証明書の生成

デフォルトでhttpを使用するので、クライアントのDockerデーモンに--insecure-registryを追加する必要があります。

su - rootコマンドを実行してrootユーザーに切り替え、パスワードを入力します。

独自のSSL証明書を生成するには、以下のコマンドを実行します。imarslan.comを自分のドメイン名に変更することを忘れないでください。

#  mkdir cert && cd cert 
# openssl req -sha256 -x509 -days 365 -nodes -newkey rsa:4096 -keyout  harbor.imarslan.com.key -out harbor.imarslan.com.crt
  • 国番号を2文字だけ入力します。私の場合はPKとしました。
  • あなたの州のフルネームを入力します。
  • あなたの都市のフルネームを入力します。
  • あなたの組織のフルネームを入力します。
  • あなたの組織単位のフルネームを入力します。
  • 共通名を入力します。私の場合は、サーバーのホスト名を使用しました。
  • メールアドレスを入力します。

Harborの設定

sudo権限で自分で作成したユーザーに切り替えます。私の場合、ユーザー名は aareez です。

#  su - aareez 

/harbor/ディレクトリに移動します。

#  cd harbor 

今、あなたは港の設定ファイルを編集する必要があります。以下のコマンドを実行します。

#  sudo nano harbor.cfg 

開いたファイルに以下のテキストをコピーして貼り付けてください。ホスト名は設定に応じて変更することを忘れないでください。その後、Ctrl+Xを押し、Yと入力してからEnterを押して設定を保存します。

hostname = harbor.imarslan.com
ui_url_protocol = https
ssl_cert = /root/cert/harbor.imarslan.com.crt
ssl_cert_key = /root/cert/harbor.imarslan.com.key

インストールを完了するには、以下のコマンドを実行します。

#  sudo ./install.sh 

以下のコマンドを実行して、バックグラウンドでdockerを実行します。

#  sudo docker-compose up -d 

これで、Alibaba Cloud ECSのドメインまたはIPアドレスにアクセスすることで、HARBORにアクセスすることができるようになりました。私の場合は、http://www.imarslan.com を使ってアクセスすると、以下のような画面が表示されます。

デフォルトのユーザー名とパスワードでログインできます。

ユーザー名: admin
パスワード: Harbor12345

ログインすると、以下のようなダッシュボードが表示されます。

おめでとうございます!Harborのインストールに成功しました

アリババクラウドは日本に2つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
アリババクラウドジャパン公式ページ