thorian93.nextcloud
Ansible 角色:Nextcloud
此角色在 Debian/Ubuntu、RHEL/CentOS 和 Fedora 服务器上安装 Nextcloud。
已知问题
- 在 Debian 上的安装通常可以,但目前不支持 Nextcloud 的自动设置。您需要手动完成这一步,并在之后再次运行该角色以执行后安装管理任务。第一次运行时,角色将失败,这是预期的。
需求
没有特别的要求;请注意此角色需要 root 权限,因此请在一个播放本中使用全局的 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
操作系统兼容性
此角色确保不会在不支持或未经测试的操作系统上使用,通过检查特定变量中的正确发行版名称和主要版本号,该变量命名方式为 <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
作者信息
此角色由 Thorian93 于 2020 年创建。
Nextcloud - Open Source Files and Collaboration
ansible-galaxy install thorian93.nextcloud