thorian93.nextcloud
Ansibleロール: Nextcloud
このロールはDebian/Ubuntu、RHEL/CentOS、FedoraサーバーにNextcloudをインストールします。
知られている問題
- Debianへのインストールは一般的に成功しますが、Nextcloudの自動設定は現在不可能です。この作業は手動で行う必要があります。その後、ロールを再度実行してインストール後の管理タスクを行ってください。最初の実行ではロールは失敗しますが、これは予想される動作です。
要件
特別な要件はありません;ただし、このロールはルートアクセスが必要なので、become: yes
をグローバルに設定したプレイブックで実行するか、以下のようにプレイブックでロールを呼び出してください:
- hosts: foobar
roles:
- role: thorian93.nextcloud
become: yes
ロール変数
利用可能な変数は以下に示し、デフォルト値が設定されています(defaults/main.yml
を参照):
nextcloud_version: "20.0.5"
インストールするNextcloudのバージョンを定義します。
nextcloud_create_self_signed_cert: true
nextcloud_self_signed_cert_subj: "/C=DE/ST=FOO/L=BAR/O=Org/CN={{ nextcloud_external_url }}"
nextcloud_self_signed_certificate_key: "/etc/{{ apache2_http_name }}/ssl/nextcloud.key"
nextcloud_self_signed_certificate: "/etc/{{ apache2_http_name }}/ssl/nextcloud.crt"
自己署名証明書を好みに合わせて設定します。
nextcloud_custom_cert: false
nextcloud_custom_cert_file: /etc/{{ apache2_http_name }}/ssl/nextcloud.crt
nextcloud_custom_cert_key: /etc/{{ apache2_http_name }}/ssl/nextcloud.key
自分の証明書を使用したい場合は、ここで定義できます。
nextcloud_certificate_key: "{{ certbot_cert_path }}/privkey.pem"
nextcloud_certificate: "{{ certbot_cert_path }}/cert.pem"
nextcloud_certificate_chain: "{{ certbot_cert_path }}/fullchain.pem"
nextcloud_create_self_signed_cert
とnextcloud_custom_cert
が両方ともfalseの場合、thorian93.certbotが証明書を取得するために使用されます。
nextcloud_db_system: "mysql"
nextcloud_db_host: "127.0.0.1"
nextcloud_db_name: "nextcloud"
Nextcloud用のデータベースを設定します。現在はMySQL/MariaDBのみが利用可能です。
nextcloud_enable_opt_prerequisites: true
Nextcloudに役立つオプションのソフトウェアをインストールします。
nextcloud_turn_enable: 'false'
nextcloud_turn_ip: "{{ ansible_default_ipv4.address }}"
nextcloud_turn_port: 3478
nextcloud_turn_realm: "{{ nextcloud_external_url }}"
# これをインベントリに設定してください。デフォルトでは、このロールはこの変数が設定されるまで、毎回新しい秘密を生成します。
# nextcloud_turn_secret:
Nextcloud Talk用のTURNサーバーのセットアップを有効にして設定します。詳細については、Nextcloudのドキュメントを参照してください。nextcloud_turn_secret
変数に注意してください!
nextcloud_backup: false
nextcloud_backup_path: "/tmp"
Nextcloudのバックアップを設定します。
nextcloud_web_dir: "/var/www/nextcloud"
nextcloud_data_dir: "/var/www/nextcloud/data"
Nextcloud用のディレクトリを定義します。
データディレクトリはウェブルートの外に置くことを推奨します。
ウェブルートは設定可能ですが、現在は/var/www
内に配置されることのみサポートされています。アプリケーションを/var/www
の外に置くことはできませんが、データディレクトリには影響しません。
nextcloud_php_options:
- line: "post_max_size = 4G"
regexp: "^post_max_size ="
- line: "upload_max_filesize = 4G"
regexp: "^upload_max_filesize ="
- line: "open_basedir ='{{ nextcloud_web_dir }}:{{ nextcloud_data_dir }}:/tmp:/dev/urandom'"
regexp: "^open_basedir ="
Nextcloud用のPHPオプションを定義します。ここで設定されたデフォルトはNextcloudが正常に動作するために必要です。
nextcloud_enabled_apps:
- files
有効にするアプリのリストです。
依存関係
- thorian93.apache2
- thorian93.php
- thorian93.certbot - カスタムまたは自己署名証明書が使用されない場合
- thorian93.mysql
OSの互換性
このロールは、専用の変数<role-name>_stable_os
に正しいディストリビューション名とメジャーバージョン番号が含まれているかを確認することにより、サポートされていないまたは未テストのオペレーティングシステムに対して使用されないことを保証します。この変数はロールのデフォルト変数ファイルdefaults/main.yml
にあります:
role_stable_os:
- Debian 10
- Ubuntu 18
- CentOS 7
- Fedora 30
ディストリビューションとメジャーバージョン番号の組み合わせがターゲットシステムに一致しない場合、ロールは失敗します。ロールを機能させるには、その変数にディストリビューション名とメジャーバージョン名を追加してください。ただし、新しい組み合わせは最初にテストしてください!
このアイデアを提供したHarryHarcourtに感謝します!
サンプルプレイブック
---
- name: "ロールを実行する"
hosts: all
become: yes
roles:
- ansible-role-nextcloud
コントリビューション
バグや問題、改善の余地がある場合はお気軽に問題をオープンしてください。質問や議論したいことがあればいつでもご連絡ください。
免責事項
このロールはそのまま提供されており、私が意図した通りに動作することを保証することもできず、このロールによって生じた損害や誤設定について責任を負うことはできません。使用する前に、ロールを十分に調査してください。
ライセンス
MIT
作者情報
このロールは2020年にThorian93によって作成されました。
Nextcloud - Open Source Files and Collaboration
ansible-galaxy install thorian93.nextcloud