どのようにnextcloudをインストールするには、使用可能なと地形?
それで、私は私の人生からGoogleサービスを取り除くことに取り組んでいました.いくつかの主要なサービスは、Gdrive、カレンダー、Gmail、およびGoogleの写真が含まれます.もちろん、これらすべてをホストしようとすると、高価な権利になりますか?それは実際にある必要はありません.NextCloudはすべてのボックスの上に大部分を支援する1つのソリューションです.メールは奇妙な男だが、私は将来のポストでそれを見てみましょう.
NextCloudは、クラウドで自己ホスティングファイルのための優れたオープンソースソリューションです.だけでなく、それはストレージ、共有、および検索機能を提供するだけでなく、カレンダー、連絡先、メールを提供し、はるかに市場の場所を介して.Googleのドライブと同じように、ブラウザでOfficeドキュメントを編集する機能もあります.それ以上の遅れがなければ、nextcloudをインストールしましょう.
インフラストラクチャを作成する前に、プロジェクト構造がどのように見えるかを示します.今のところ、私たちはNextCloudで働いています.tfファイル.
私たちのインフラストラクチャが設定されているので、関連する可用性ファイルを作成しましょう.次のコマンドを実行して、nextCloudロールを作成します.
次に、Dockerを作成するときです.YAMLファイル.完全なファイル名がDocker構成であるように、我々はJinja 2テンプレート形式を使用するつもりです.山口大J 2.以下はファイルの内容です.
最後に、それは脚本を作成する時間です.YAMLプロジェクトのルーツ.ファイルに次のペーストをコピーします.
さあ遊びましょう.
すべてうまくいけば、あなたはNextCloudのあなたの非常に自身の働くインストールをするべきです.あなたがカスタマイズすることができますし、あなたの心のコンテンツを探る.
これに記載されているすべてのファイルは、以下のGithubリンクで見つかります.
Github Repo
Subscribe
NextCloudは、クラウドで自己ホスティングファイルのための優れたオープンソースソリューションです.だけでなく、それはストレージ、共有、および検索機能を提供するだけでなく、カレンダー、連絡先、メールを提供し、はるかに市場の場所を介して.Googleのドライブと同じように、ブラウザでOfficeドキュメントを編集する機能もあります.それ以上の遅れがなければ、nextcloudをインストールしましょう.
ℹ️
I will be installing Nextcloud to Digital Ocean. However, you can install Nextcloud on your cloud of choice.
Creating the infrastructure
Using Terraform
インフラストラクチャを作成する前に、プロジェクト構造がどのように見えるかを示します.今のところ、私たちはNextCloudで働いています.tfファイル.
.
├── nextcloud.tf
私たちはterraformを使用してインフラストラクチャを作成します.Terraformは、我々はインフラストラクチャ管理を自動化することができます素晴らしいツールです.プロジェクト、サーバー、ファイルストレージバケット、およびアラートを作成するには、次のTerraform Specを使用します.terraform {
required_providers {
digitalocean = {
source = "digitalocean/digitalocean"
version = "~> 2.0"
}
}
}
# Set the variable value in *.tfvars file
# or using -var="do_token=..." CLI option
variable "do_token" {
type = string
}
variable "do_spaces_access_id" {
type = string
}
variable "do_spaces_secret_key" {
type = string
}
variable "ssh_key_id" {
type = number
}
variable "alert_email" {
type = string
}
# Configure the DigitalOcean Provider
provider "digitalocean" {
token = var.do_token
spaces_access_id = var.do_spaces_access_id
spaces_secret_key = var.do_spaces_secret_key
}
resource "digitalocean_droplet" "[server_name]" {
image = "ubuntu-20-04-x64"
name = "nextcloud-server-1"
region = "tor1"
size = "s-1vcpu-2gb"
monitoring = true
ssh_keys = [var.ssh_key_id]
tags = ["document", "nextcloud"]
droplet_agent = true
graceful_shutdown = true
}
resource "digitalocean_spaces_bucket" "[bucket_name]" {
name = "com.sfisoftware.documents"
region = "nyc3"
}
resource "digitalocean_project" "[project_name]" {
name = "Documents"
description = "Project for housing documents."
purpose = "Document hosting"
environment = "Production"
resources = [
digitalocean_droplet.nextcloud_server.urn,
digitalocean_spaces_bucket.sfisoftware_documents.urn
]
}
resource "digitalocean_monitor_alert" "cpu_alert" {
alerts {
email = [var.alert_email]
}
window = "5m"
type = "v1/insights/droplet/cpu"
compare = "GreaterThan"
value = 70
enabled = true
entities = [digitalocean_droplet.nextcloud_server.id]
description = "Alert about CPU usage"
}
任意のプロバイダをダウンロードしてインストールするには、プロジェクトディレクトリにinitコマンドを実行します.terraform init
あなたの好みにリソース名を変更する必要があります.あなたの選択の雲へのAPIアクセスがあることを確認します.私にとって、私はAPIトークンを持っています.また、DOUNN SpaceShortAccessRes IDとDOUNE SpaceSense SecretThyキーはS 3のようなバケットアクセスのためです.このバケツは、簡単な拡張記憶装置のためにnextcloudの範囲内で使われることができます.では、次のコマンドを実行して作成プロセスを開始しましょう.terraform plan \
-var "alert_email=$ALERT_EMAIL" \
-var "do_token=$DIGITAL_OCEAN_TOKEN" \
-var "ssh_key_id=$DIGITAL_OCEAN_SSH_KEY_ID" \
-var "do_spaces_access_id=$DIGITAL_OCEAN_SPACES_ACCESS_ID" \
-var "do_spaces_secret_key=$DIGITAL_OCEAN_SPACES_SECRET_KEY"
Code block for Terraform plan command
Now the plan is created let's apply it to the cloud.
terraform apply \
-var "alert_email=$ALERT_EMAIL" \
-var "do_token=$DIGITAL_OCEAN_TOKEN" \
-var "ssh_key_id=$DIGITAL_OCEAN_SSH_KEY_ID" \
-var "do_spaces_access_id=$DIGITAL_OCEAN_SPACES_ACCESS_ID" \
-var "do_spaces_secret_key=$DIGITAL_OCEAN_SPACES_SECRET_KEY"
あなたは変更を承認するプロンプトを取得します.続行するにはYesを入力する必要があります.このコマンドの最後に、仮想マシン、S 3のようなバケット、アラート/モニタのすべてが新しいプロジェクトに割り当てられます.ℹ️
If you want to destroy the infrastructure and start again just use the following command
terraform destroy -var "alert_email=$ALERT_EMAIL" -var "do_token=$DIGITAL_OCEAN_TOKEN" -var "ssh_key_id=$DIGITAL_OCEAN_SSH_KEY_ID" -var "do_spaces_access_id=$DIGITAL_OCEAN_SPACES_ACCESS_ID" -var "do_spaces_secret_key=$DIGITAL_OCEAN_SPACES_SECRET_KEY"
nextcloudをインストールするには?
私たちのインフラストラクチャが設定されているので、関連する可用性ファイルを作成しましょう.次のコマンドを実行して、nextCloudロールを作成します.
ansible-galaxy init nextcloud-role
コマンドが完了したら、手動で次のファイルを作成します.YAMLプロジェクトのルートでは、Dockerの構成.山口大nextcloudロールの下にあるテンプレートフォルダーの中のJ 2と要件.再びYAMLの根..
├── nextcloud-role
│ ├── defaults
│ │ └── main.yml
│ ├── files
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── README.md
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ │ └── docker-compose.yaml.j2
│ ├── tests
│ │ ├── inventory
│ │ └── test.yml
│ └── vars
│ └── main.yml
├── nextcloud.tf
├── playbook.yaml
├── requirements.yaml
プロジェクトフォルダは上記のようになります.次のコンテンツをコピーして貼り付けます.YAMLを実行し、依存関係をインストールするコマンドを実行します.---
roles:
- name: geerlingguy.certbot
version: 5.0.0
- name: geerlingguy.docker
version: 4.1.3
- name: geerlingguy.nginx
version: 3.1.0
ansible-galaxy install requirements.yaml
依存関係がインストールされた後、メインタスクを作成する時間です.メイン/タスクを開きます.YMLファイルをペーストして、以下の内部をペーストします.---
- name: Create docker-compose file
template:
src: docker-compose.yaml.j2
dest: /root/docker-compose.yaml
- name: Deploy Nextcloud stack
command: docker-compose up -d
- name: Run Nextcloud cron every 5 minutes
ansible.builtin.cron:
name: "Nexcloud cron"
minute: "*/5"
job: "docker exec -u www-data root_app_1 php cron.php"
上記のタスクをすべて行うには、Dockerをリモートサーバーにコピーし、Dockerを使用してNextCloudインスタンスを起動し、NextCloudのバックグラウンドジョブを実行するトウモロコシジョブを作成します.次に、Dockerを作成するときです.YAMLファイル.完全なファイル名がDocker構成であるように、我々はJinja 2テンプレート形式を使用するつもりです.山口大J 2.以下はファイルの内容です.
version: '3'
volumes:
nextcloud:
db:
services:
db:
image: mariadb:10.7.3
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD="{{ lookup('env', 'NEXTCLOUD_MYSQL_ROOT_PASSWORD') }}"
- MYSQL_PASSWORD="{{ lookup('env', 'NEXTCLOUD_MYSQL_PASSWORD') }}"
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:22.2.6
restart: always
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
environment:
- MYSQL_PASSWORD="{{ lookup('env', 'NEXTCLOUD_MYSQL_PASSWORD') }}"
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
作成ファイルでは、使用するデータベース、および使用するバージョンのnextcloudを指定します.書き込み時に、22.2.6は最新の製造準備版です.あなたは、最新バージョンが何でこのバージョン番号を更新することができます.ここでは様々なデータベースとユーザ情報を指定します.環境変数を使って、敏感な値を指定します.ポートnextcloudが動いていることに注意してください.心配しないでください、nginxとcertbotでnextcloudインスタンスをproxyingし、確保するでしょう.最後に、それは脚本を作成する時間です.YAMLプロジェクトのルーツ.ファイルに次のペーストをコピーします.
---
- hosts: all
vars:
certbot_admin_email: "{{ lookup('env', 'ALERT_EMAIL') }}"
certbot_create_if_missing: true
certbot_create_standalone_stop_services: []
certbot_certs:
- domains:
- [DOMAIN]
nginx_upstreams:
- name: nextcloud
strategy: "ip_hash" # "least_conn", etc.
servers:
- "localhost:8080"
nginx_vhosts:
- listen: "80"
server_name: "[DOMAIN]"
return: "301 https://[DOMAIN]$request_uri"
filename: "[DOMAIN].80.conf"
- listen: "443 ssl http2"
server_name: "[DOMAIN]"
filename: "[DOMAIN].443.conf"
extra_parameters: |
location / {
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://nextcloud;
}
ssl_certificate /etc/letsencrypt/live/[DOMAIN]/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/[DOMAIN]/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
roles:
- role: geerlingguy.certbot
- role: geerlingguy.docker
- role: geerlingguy.nginx
- role: nextcloud-role
playbookファイルでは、実行可能なロールを指定します.先頭にいくつかのcertbot変数を指定します.Certbot SSLアラートのための電子メールを設定してください.そして、nginxの上流であるnginxを設定し、nginxに対するvhostsの数を設定します.NextCloudポート8080を使用していることに注意してください.SSL設定は標準的なCertbotインストール場所を指しています.あなたのNextCloudドメインで[ドメイン]のすべての発生を変えるようにしてください.さあ遊びましょう.
ansible-playbook -u root -i "[SERVER IP]," playbook.yaml
terraformを使って作成されたVMのIPアドレスに[サーバIP ]を変更します.パラメータにコンマを含めるようにしてください.そうでなければエラーをスローします.すべてうまくいけば、あなたはNextCloudのあなたの非常に自身の働くインストールをするべきです.あなたがカスタマイズすることができますし、あなたの心のコンテンツを探る.
これに記載されているすべてのファイルは、以下のGithubリンクで見つかります.
Github Repo
Subscribe
Reference
この問題について(どのようにnextcloudをインストールするには、使用可能なと地形?), 我々は、より多くの情報をここで見つけました https://dev.to/mbbaig/how-to-install-nextcloud-using-ansible-and-terraform-5a1aテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol