Deploy Yunohost with Ansible!
None.
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.
# 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.
# 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 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.
# 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.
# 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.
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 likedomain.tld/my_app
. Just use/
if the application is to be installed on a subdomain.is_public
argument is a common one. Set toyes
, the application will be accessible to everyone, even without authentication to the Yunohost SSO portal. Set tono
, 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.
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.
- If you specify
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.
None.
---
- 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
ansible-yunohost is maintained by Lydra and released under the GPL3 license.