1
0
Fork 0
ynh-lydra-ansible-yunohost/README.md
2022-01-24 14:28:41 +00:00

8.8 KiB

License: GPL v3 Ansible Role Ansible Quality Score Ansible Role GitHub last commit GitHub Release Date GitHub Repo stars

Ansible Role: Yunohost

🇫🇷 French version

Deploy Yunohost with Ansible!

Requirements

None.

Role Variables

Default variables are available in default/main.yml however it is necessary to override them according to your needs for Yunohost domains, users and apps.

Yunohost Installation

# Debian 10 script only.
ynh_install_script_url: https://install.yunohost.org

ynh_admin_password: MYINSECUREPWD_PLZ_OVERRIDE_THIS
  • ynh_install_script_url downloads official Yunohost script for installing Yunohost packages. Yunohost is only available on Debian 10.
  • ynh_admin_password is the password used to access to the server's administration interface.

Domain management

# The list of Yunohost domains.
ynh_main_domain: domain.tld
ynh_extra_domains:
  - forum.domain.tld
  - wiki.domain.tld
ynh_ignore_dyndns_server: False
  • ynh_main_domain is the main domain used by the server's users to access the authentication portal. If you already own a domain name, you probably want to use it here. You can also use a domain in .nohost.me / .noho.st / .ynh.fr (more info here).
  • ynh_extra_domains are optional and allow you to install one app per subdomain (more info here).
  • ynh_ignore_dyndns_server allow to register domains with a Dynamic DNS service (more info here).

SMTP relay configuration

# SMTP custom settings
ynh_smtp_relay:
    host: smtp.domain.tld
    port: 25
    user: user1
    password: Pa$$w0rd

There is a built-in SMTP server on Yunohost but you can also set up Yunohost to use a SMTP relay instead. In order to do so, create the ynh_smtp_relay variable and provide your own values. You can learn more about SMTP relay here.

User management

# The list of Yunohost users.
ynh_users:
   - name: user1
     pass: MYINSECUREPWD_PLZ_OVERRIDE_THIS
     firstname: Jane
     lastname: Doe
     mail_domain: domain.tld
  • ynh_users is the list of users to create. Each field is mandatory. Some Yunohost applications require that a user be the app administrator. He will then have the right to manage the application from the server administration interface. You can learn more about Yunohost user management here.

App management

# The list of Yunohost apps.
ynh_apps:
  - label: WikiJS
    link: wikijs
    args:
      domain: wiki.domain.tld
      path: /
      admin: user1
      is_public: no
  - label: Discourse
    link: discourse
    args:
      domain: forum.domain.tld
      path: /
      admin: user1
      is_public: yes
    post_install:
      - src: "templates/site_settings.yml.j2"
        dest: "/var/www/discourse/config/site_settings.yml"
        type: "config"

      - src: "templates/configure_discourse.sh.j2"
        dest: "/tmp/configure_discourse.sh"
        type: "script"
        owner: root
        group: root
  • ynh_apps is the list of applications to install.
  • label allows you to give a custom name to the application on the user interface.
  • link is the name of the Yunohost application to install.

About the arguments

  • domain is essential. You have to choose one of the domains of your Yunohost instance.
  • path is required. You have to choose a URL to access your application like domain.tld/my_app. Just use / if the application is to be installed on a subdomain.
  • is_public argument is a common one. Set to yes, the application will be accessible to everyone, even without authentication to the Yunohost SSO portal. Set to no, the application will be accessible only after authentication.

For the other arguments, you have to refer to the manifest.json available in the repository of the Yunohost application you install. You can learn more about this part here.

About the post-installation

It is possible to complete the installation of applications by adding jinja template configuration files or scripts written by yourself. To enable this feature, define the post_install variable which corresponds to the list of post-installation files of your applications. Because this task uses the template module, you can use your own variables and call them in your template files. To know more about this module, click here.

  • src is mandatory. This is the directory where the template file is located on the machine running Ansible.
  • dest is mandatory. This is the directory where the template file will be stored.
  • type is mandatory:
    • If you specify script as the value, then the template file will have 740 rights. It will be executed after it is transferred to the Yunohost server (usually in /tmp/) and then deleted.
    • If you specify config as the value, then the template file will have 660 rights. It will be transferred to the Yunohost server (usually in /var/www/AppName/) and after you could import it with a shell script on the side for example.

For owner and group, by default the file will take as owner the name of the application and as owner www-data(NGINX group). You can change them by specifying different values.

About the updates

# Autoupdate Yunohost and its apps
ynh_autoupdate:
  scheduled: True
  special_time: "daily" #Choices are [annually,daily,hourly,monthly,reboot,weekly,yearly]
  apps: True
  system: True
  dest_script: "/usr/bin/"

A cron job can been set up to automate the check for system and application updates on a schedule of your choice.

  • ynh_autoupdate.scheduled : enables the cron job by setting the value to True.
  • ynh_autoupdate.special_time: it is mandatory. It allows you to specify when you want this task to be executed. Possible values: (annually,daily,hourly,monthly,reboot,weekly,yearly). To learn more about special times, click here.
  • ynh_autoupdate.apps: is mandatory. Enable automatic updating of Yunohost applications by setting the value to True.
  • ynh_autoupdate.system: is mandatory. Enable automatic updating of the Yunohost system by setting the value to True.
  • ynh_autoupdate.dest_script: it is the path to the directory where the update script will be installed on the server. The default value is /usr/local/bin. The script is named ynh_autoupdate.sh.

If available, updates are done automatically. In case of problems following an application update, you can read logs located in /var/log/yunohost/categories/operation . You also have the possibility to rollback to the previous version since Yunohost always makes an automatic backup of an application when it is updated.

To learn more about how updates work in Yunohost you can go here. The changelog of Yunohost versions is also available here.

Dependencies

None.

Example Playbook

---
- name: Install Yunohost on Debian Server
  hosts: all
  become: True
  pre_tasks:
    - name: Update all packages and index
      ansible.builtin.apt:
        upgrade: dist
        update_cache: yes
    
  roles:
    - ansible-yunohost

License

ansible-yunohost Copyright 2021 Lydra

ansible-yunohost is maintained by Lydra and released under the GPL3 license.