CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
このガイドでは、複数のAlpine Linux 3.9.0サーバーとPortainerを使用してDockerスウォームを作成および構成する方法について説明します。Vultrは現在CentOS 7 x64とUbuntu 16.04 x64の両方をサポートするワンクリックDockerアプリを提供していることに注意してください。
最初に、Alpine Linux 3.9.0を実行する少なくとも2つのVC2サーバーが必要です。Docker Swarm内では、これらのサーバーの1つがmanager node
-外部ネットワークとのインターフェースとワーカーノードへのジョブの委任として機能します。もう一方のサーバーはworker node
、マネージャーノードによって委任されたジョブを実行します。
アプリケーションに冗長性や計算能力が必要な場合は、3つ以上のサーバーを起動できますが、このガイドで提供されている手順は引き続き適用されます。
Vultr サーバー配備インターフェースにアクセスします。
Vultr Cloud (VC2)
ページの上部でタブが選択されていることを確認します。
Server Location
セクションから任意の場所を選択できますが、すべてのサーバーが同じ場所にある必要があります。そうしないと、Dockerスウォームをサーバーにデプロイできません。
セクションのISO Library
タブをServer Type
選択し、Alpine Linux 3.9.0 x86_64
画像を選択します。
Server Size
セクションから適切なオプションを選択します。このガイドでは25 GB SSDサーバーサイズを使用しますが、アプリケーションのリソース要件を満たすには不十分な場合があります。Vultrを使用すると、サーバーの起動後にサーバーのサイズを簡単にアップグレードできますが、アプリケーションが最適に実行するために必要なサーバーのサイズを慎重に検討する必要があります。
ではAdditional Features
セクション、あなたが選択する必要がありますEnable Private Networking
オプションを選択します。他のオプションはこのガイドに従う必要はありませんが、アプリケーションのコンテキストでそれぞれが意味があるかどうかを検討する必要があります。
Multiple Private Networks
アカウントでこのオプションを以前に有効にしている場合は、既存のサーバーを選択するか、サーバーの新しいプライベートネットワークを作成する必要があります。有効にしていない場合は、このセクションを無視できます。プライベートネットワークを手動で構成する方法については、このガイドをご覧ください。
ここでは、このFirewall Group
セクションをスキップしてください。Docker Swarmでマネージャーノードとして機能するサーバーのみが公開ポートを必要とし、これはサーバーのデプロイ後に構成する必要があります。
ページの一番下に、Server Qty
少なくとも2つのを入力する必要があります。前述のように、3台以上のサーバーが必要になる場合がありますが、このガイドでは2台で十分です。
最後に、Server Hostname & Label
セクションで、各サーバーの意味のある覚えやすいホスト名とラベルを入力します。このガイドの目的のために、最初のサーバーのホスト名とラベルは次のようになりますdocker-manager
とDocker Manager
、とrespectively- docker-worker
とDocker Worker
、それぞれ、第二のために。
すべての構成を再確認したらDeploy Now
、ページの下部にあるボタンをクリックしてサーバーを起動できます。
VultrのISOライブラリからOSを選択したため、各サーバーにAlpine Linux 3.9.0を手動でインストールして構成する必要があります。
Vultrにサーバーを割り当てるために1〜2分待った後、サーバー管理インターフェイスでサーバーの三重ドットmore options
アイコンをクリックし、オプションを選択します。Docker Manager
View Console
ログインプロンプトが表示されたコンソールにリダイレクトされます。そうでない場合は、Vultrがサーバーの展開を完了するまでさらに1分お待ちください。
そのログインプロンプトでroot
、ユーザー名としてを入力します。Alpine Linux 3.9.0のライブバージョン(サーバーが現在実行しているバージョン)では、ログイン時にスーパーユーザーがパスワードを入力する必要はありません。
rootアカウントに正常にログインすると、ウェルカムメッセージが表示され、その後に次のようなシェルプロンプトが表示されます。
localhost:~#
Alpine Linuxインストーラーを起動するには、次のコマンドを入力します。
# setup-alpine
まず、適切なキーボードレイアウトを選択します。このガイドでは、us
レイアウトとバリアントを使用します。
ホスト名を設定するときは、展開中にこのサーバーに設定したのと同じホスト名を選択します。このガイドに正確に従っている場合、ホスト名はになりますdocker-manager
。
2つのネットワークインターフェイスが使用可能である必要があります:eth0
およびeth1
。のみが表示さeth0
れる場合は、サーバーのプライベートネットワークが正しく構成されていません。初期eth0
使用dhcp
、および初期化しeth1
、ネットマスクをプライベートIPアドレスを使用して、このサーバは、展開中に割り当てられたゲートウェイ。これらの詳細には、サーバーの設定インターフェイスからアクセスできます。プロンプトが表示されたら、手動でネットワーク構成を実行しないでください。
rootアカウントの新しいパスワードを入力し、これらのサーバーの展開先として選択した場所に適したタイムゾーンを選択します。
HTTP / FTPプロキシを使用する場合は、そのURLを入力します。それ以外の場合は、プロキシURLを設定しないでください。
システムクロックの同期を管理するNTPクライアントを選択します。このガイドではを使用しますbusybox
。
使用するパッケージリポジトリミラーを求められたら、番号を入力して明示的に選択します。次のように入力して、最速のものを自動的に検出して選択しますf
。またはe
、と入力してリポジトリー構成ファイルを手動で編集します。これは、Alpine Linuxに慣れていない限り、お勧めできません。このガイドでは、最初のミラーを使用します。
SSHを使用してサーバーにアクセスするか、SSHベースのファイルシステムをホストする場合は、使用するSSHサーバーを選択します。このガイドではを使用しますopenssh
。
使用するディスクを求められたら、タイプvda
としてディスクを選択しますsys
。
これで、Alpine Linux 3.9.0がサーバーにインストールされます。以前にデプロイした他のすべてのサーバーについてこのプロセスを繰り返し、ホスト名とeth1
ネットワークインターフェイスを正しい値に置き換えます。
この時点では、サーバーはまだAlpine Linux 3.9.0のライブISOバージョンを実行しています。SSDインストールから起動するには、サーバーの設定インターフェイスにアクセスし、Custom ISO
サイドメニューエントリに移動して、Remove ISO
ボタンをクリックします。これでサーバーが再起動します。そうでない場合は、手動で再起動します。
サーバーの再起動が完了したら、サーバーのウェブコンソールに戻りますDocker Manager
。
インストールプロセスで前に設定したパスワードを使用して、rootアカウントにログインします。
を/etc/apk/repositories
使用する3行目のコメントを外して、コミュニティパッケージリポジトリを有効にしvi
ます。同様の方法でエッジリポジトリとテストリポジトリを有効にすることができますが、このガイドに従う必要はありません。
次のシェルコマンドを入力して、サーバーのローカルパッケージインデックスを以前に選択したリモートリポジトリと同期します。
# apk update
次に、古いパッケージをアップグレードします。
# apk upgrade
前と同じように、以前にデプロイしたサーバーごとにこの構成プロセスを繰り返します。
Dockerパッケージ自体をインストールする前に、別のdocker
ユーザーを作成することもできます。これを行うには、次のコマンドを使用します。
# adduser docker
注: Dockerパッケージがインストールされると、この新しいユーザーと新しいdocker
グループに追加されたすべてのユーザーはroot権限を持ちます。Moby Githubリポジトリから次の問題を参照してください。
ために
--privileged
ドッキングウィンドウでは、誰もが「ドッキングウィンドウ」グループに追加し、ルートと同等です。dockerグループの誰もが、すべての権限昇格ポリシーとシステムの監査について裏口を持っています。これは、sudoを実行してrootになり、ポリシーを適用して監査を適用できる人とは異なります。
docker
ユーザーにsudo権限を付与する場合は、最初にsudo
パッケージをインストールします。
# apk add sudo
次に、sudo
グループを作成します。
# addgroup sudo
最後に、docker
ユーザーをsudo
グループに追加します。
# adduser docker sudo
これで、このガイドのステップ4に従って、sudoの構成を完了できます。
これで、Dockerパッケージをインストールする準備が整いました。docker
Dockerをインストールして構成するために、別のsudo対応ユーザーがいる必要は厳密にはありませんが、このガイドはその規則に従います。
次のコマンドでDockerパッケージをインストールします。
# apk add docker
次に、Docker initスクリプトを有効にします。
# rc-update add docker
最後に、Dockerデーモンを起動します。
# rc-service docker start
次のコマンドを使用して、Dockerが実行されていることを確認できます。
# docker info
前回と同様に、最初にデプロイしたサーバーごとにこのDockerインストールプロセスを繰り返します。
これですべてのセットアップが処理され、ついにDockerスウォームを作成する準備が整いました。
Docker Manager
サーバーのWebコンソールに戻ります。このサーバーをスウォームのマネージャーノードとして構成します。docker
以前にユーザーを作成することを選択した場合は、スーパーユーザーではなくそのアカウントを使用してログインします。
次のコマンドを入力しますが192.0.2.1
、Docker Manager
サーバーに割り当てられた(パブリックではなく)プライベートIPアドレスに置き換えます。
$ docker swarm init --advertise-addr 192.0.2.1
Dockerは、プライベートネットワーク内の他のサーバーで実行できるコマンドを表示し、それらをワーカーノードとしてこの新しい群に追加します。このコマンドを保存します。
次に、Docker Worker
サーバーのWebコンソールに移動し、docker
作成したユーザーでサインインします。
作成したswarmにこのサーバーをワーカーノードとして追加するには、swarm作成コマンドの出力から保存したコマンドを実行します。次のようになります。
$ docker swarm join --token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX 192.0.2.1:2377
Dockerはノードがスウォームに参加できたかどうかを出力します。ワーカーノードをスウォームに追加する際に問題が発生した場合は、プライベートネットワーク構成を再確認し、トラブルシューティングについてこのガイドを参照してください。
最初に3つ以上のサーバーをデプロイした場合は、上記のコマンドを使用して残りをワーカーノードとしてスウォームに追加し、アプリケーションで使用できるリソースの量を増やすことができます。または、マネージャーノードを追加することもできますが、それはこのガイドの範囲を超えています。
この時点で、Docker Swarmを使用する準備ができています。ただし、必要に応じて、スウォームのマネージャーノードでPortainerスタックを起動できます。Portainerは、スウォームとその中のノードを管理するための便利なWebインターフェースを提供します。
群れのためのファイアウォールグループを作成する時が来ました。アプリケーションが特に必要としない限り、マネージャーノードのポートのみを公開します。注意深く考慮せずにワーカーノードのポートを公開すると、脆弱性が生じる可能性があります。
移動し、ファイアウォール管理インターフェイスと新しいファイアウォールグループを作成します。アプリケーションは公開するポートを指定する必要がありますが、少なくとも、9000
Portainerのポートを公開する必要があります。このファイアウォールグループをDocker Manager
サーバーに適用します。
必須ではありませんが、SSLでPortainerを保護することを強くお勧めします。このガイドでは、自己署名OpenSSL証明書のみを使用しますが、本番環境ではLet's Encryptの使用を検討する必要があります。
Docker Manager
サーバーのWebコンソールに移動し、docker
ユーザーを使用してログインし、次のコマンドを使用して自己署名OpenSSL証明書を生成します。
$ mkdir ~/certs
$ openssl genrsa -out ~/certs/portainer.key 2048
$ openssl req -new -x509 -sha256 -key ~/certs/portainer.key -out ~/certs/portainer.pem -days 3650
~/portainer-agent-stack.yml
次の内容で新しいファイルを作成します。
version: '3.2'
services:
agent:
image: portainer/agent
environment:
AGENT_CLUSTER_ADDR: tasks.agent
CAP_HOST_MANAGEMENT: 1
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
- /:/host
networks:
- agent_network
deploy:
mode: global
portainer:
image: portainer/portainer
command: -H tcp://tasks.agent:9001 --tlsskipverify --ssl --sslcert /certs/portainer.pem --sslkey /certs/portainer.key
ports:
- target: 9000
published: 9000
protocol: tcp
mode: host
volumes:
- portainer_data:/data
- /home/docker/certs:/certs
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
volumes:
portainer_data:
このDockerスタック構成ファイルを変更して要件に適合させたら、それをデプロイできます。
$ docker stack deploy --compose-file ~/portainer-agent-stack.yml portainer
Portainerが機能していることを確認するには、Dockerにスタックをデプロイする1〜2分後、次のコマンドを実行します。
$ docker ps
イメージportainer/portainer:latest
とを含む2つのコンテナが表示されportainer/agent:latest
、Portainerが正しく起動したことを確認します。
これで、HTTPSを使用Docker Manager
してポートでサーバーのパブリックIPアドレスにアクセスすることにより、Dockerスウォームを構成および管理できます9000
。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。