diff --git a/defaults/main.yml b/defaults/main.yml index d8c2a1c..b3ca691 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,11 +1,18 @@ --- -redmine_version: 4.0.1 +redmine_major_version: 4 +redmine_minor_version: 2 +redmine_patch_version: 0 +redmine_version: '{{ redmine_major_version }}.{{ redmine_minor_version }}.{{ redmine_patch_version }}' redmine_inst_name: redmine redmine_main_project: redmine redmine_db_user: redm_db_user redmine_db_name: redm_db_name redmine_db_host: localhost -# The commented variables need to be set on the playbooks +redmine_install_from_subversion: True +redmine_subversion_tree: 'branches' +redmine_subversion_url: 'https://svn.redmine.org/redmine/{{ redmine_subversion_tree }}' +redmine_download_url: 'http://www.redmine.org/releases' +# The commented variables must be set in the playbook #redmine_glob_root_dir: /srv/redmine # It is a redmine_glob_root_dir subdirectory redmine_inst_dir: redmine @@ -20,15 +27,23 @@ redmine_sysvinit_service_name: '{{ redmine_inst_name }}' redmine_systemd_service_name: 'unicorn@{{ redmine_inst_name }}.service' redmine_service_name: '{{ redmine_systemd_service_name }}' +redmine_web_root: '{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/public' +nginx_frontend: '{{ redmine_nginx_frontend }}' +nginx_use_common_virthost: '{{ redmine_nginx_use_common_virthost }}' +nginx_virthosts: '{{ redmine_nginx_virthosts }}' + redmine_log_level: warn # Minutes, from 1 to 60 redmine_ldap_sync_freq: 10 # users, groups, all redmine_ldap_sync_who: all +redmine_ldap_sync_cron_job: '/usr/local/bin/rake -f {{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/Rakefile --silent redmine:plugins:ldap_sync:sync_{{ redmine_ldap_sync_who }} RAILS_ENV=production >{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/log/redmine-ldap-sync.log 2>&1' -redmine_glob_user: www-data -redmine_glob_group: www-data +redmine_glob_user: redmine +redmine_glob_group: redmine redmine_glob_users_home_base: /srv/redmine-home +# Define it and point to an external directory to have it used +# redmine_storage_path: '/{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/files' redmine_imap_sync: False redmine_imap_server: localhost @@ -42,59 +57,88 @@ redmine_imap_sync_additional_options: '' # Plugins rm_ldap_auth: False -rm_ldap_synch: False -rm_better_gant_plugin: False +rm_ldap_sync: False +rm_ldap_synch: '{{ rm_ldap_sync }}' +rm_ldap_sync_url: 'https://github.com/thorin/redmine_ldap_sync.git' +rm_better_gantt_plugin: False +rm_better_gantt_url: 'https://github.com/tuanpembual/redmine_better_gantt_chart.git' rm_login_audit_plugin: False +rm_login_audit_url: 'https://github.com/martin-denizet/redmine_login_audit.git' rm_progressive_projects_plugin: False +rm_progressive_projects_url: 'https://github.com/stgeneral/redmine-progressive-projects-list.git' rm_didyoumean_plugin: False +rm_didyoumean_plugin_url: 'https://github.com/abahgat/redmine_didyoumean.git' rm_graphs_plugin: False +rm_graphs_url: 'https://github.com/bradbeattie/redmine-graphs-plugin.git' rm_embedded_tabs_plugin: False +rm_embedded_tabs_url: 'https://github.com/jamtur01/redmine_tab.git' rm_recurring_tasks_plugin: False +rm_recurring_tasks_url: 'https://github.com/nutso/redmine-plugin-recurring-tasks.git' redmine_install_agile_plugin: False -rm_scrum_plugin: False rm_advanced_roadmap_plugin: False +rm_advanced_roadmap_url: 'https://github.com/Coren/redmine_advanced_roadmap_v2.git' rm_scrum2b_plugin: False -rm_autowatcher_plugin: False +rm_scrum2b_url: 'https://github.com/scrum2b/scrum2b.git' rm_issuereminder_plugin: False +rm_issuereminder_url: 'https://github.com/jcppkkk/redmine_mail_reminder' rm_issue_reminder_plugin_freq_min: 0 rm_issue_reminder_plugin_freq_hour: 5 rm_issue_reminder_plugin_freq_weekday: 1 # https://github.com/arkhitech/redmine_update_reminder # We configure to send the email reminders once a week on monday morning by default rm_updatereminder_plugin: False +rm_updatereminder_url: 'https://github.com/arkhitech/redmine_update_reminder' rm_updatereminder_plugin_freq_min: 0 rm_updatereminder_plugin_freq_hour: 5 rm_updatereminder_plugin_freq_weekday: 1 rm_mention_plugin: False +#rm_mention_url: 'https://github.com/stpl/redmine_mention_plugin' +rm_mention_url: 'https://github.com/tainewoo/redmine_mentions' rm_mentions_plugin: False rm_defaultcustomquery_plugin: False -rm_gamification_plugin: False +rm_defaultcustomquery_url: 'https://github.com/hidakatsuya/redmine_default_custom_query' rm_closesresolvedissue_plugin: False +rm_closesresolvedissue_url: 'https://github.com/Jogi1j/redmine_closes_resolved_issues' +rm_defaultassign_url: 'https://github.com/giddie/redmine_default_assign' rm_defaultassign_plugin: False +rm_onceassignedeverwatcher_url: 'https://github.com/raafael911/redmine_once_assigned_ever_watcher' rm_onceassignedeverwatcher_plugin: False +rm_clipboardimagepaste_url: 'https://github.com/peclik/clipboard_image_paste' rm_clipboardimagepaste_plugin: False +rm_hotkeysjs_url: 'https://github.com/sasha-ch/redmine_hotkeys_js' rm_hotkeysjs_plugin: False +rm_issuessorting_url: 'https://github.com/JohnBat26/redmine_issues_sorting' rm_issuessorting_plugin: False +rm_mylyn_url: 'https://github.com/ljader/redmine-mylyn-plugin' rm_mylyn_plugin: False +rm_quickedit_url: 'git://git.sourceforge.jp/gitroot/quickedit/quick_edit.git' rm_quickedit_plugin: False +rm_quickview_url: 'git://git.sourceforge.jp/gitroot/quickedit/quick_view.git' rm_quickview_plugin: False -rm_codereview_plugin: False rm_globalroles_plugin: False rm_unreadissues_plugin: False rm_usability_plugin: False +rm_mylynconnector_url: 'git://github.com/danmunn/redmine_mylyn_connector.git' rm_mylynconnector_plugin: False rm_addsubversionlinks_plugin: False +rm_addsubversionlinks_url: 'https://github.com/masamitsu-murase/redmine_add_subversion_links.git' +rm_wiki_external_url: 'https://github.com/nutso/redmine-plugin-wiki-external.git' rm_wiki_external_plugin: False +rm_pastebin_url: 'https://github.com/commandprompt/redmine_pastebin.git' rm_pastebin_plugin: False +rm_issue_templates_url: 'https://github.com/akiko-pusu/redmine_issue_templates' rm_issue_templates_plugin: False # TODO lists plugin: https://redmine.org/plugins/redmine_issue_todo_lists +rm_issue_todo_lists_url: 'https://github.com/canidas/redmine_issue_todo_lists' rm_issue_todo_lists_plugin: False # # IMPORTANT: these are mutually exclusive. One of the two needs to be set to True ruby_use_mod_passenger: False ruby_use_unicorn: True # Redmine 2.x only +rm_involvement_url: 'https://github.com/commandprompt/redmine_involvement_filter.git' rm_involvement_plugin: False +rm_omniauth_url: 'https://github.com/arlin2050/redmine_omniauth_client.git' rm_omniauth_plugin: False # Used by unicorn @@ -107,4 +151,3 @@ unicorn_pid_dir: '{{ unicorn_log_dir }}' unicorn_pid_file: '{{ unicorn_pid_dir }}/unicorn.pid' redmine_additional_gems: [] - diff --git a/files/a1-theme.zip b/files/a1-theme.zip deleted file mode 100644 index 104fb52..0000000 Binary files a/files/a1-theme.zip and /dev/null differ diff --git a/files/circle-theme.zip b/files/circle-theme.zip deleted file mode 100644 index bdb8e4b..0000000 Binary files a/files/circle-theme.zip and /dev/null differ diff --git a/meta/main.yml b/meta/main.yml index 84a5a62..6c081a6 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -21,15 +21,9 @@ galaxy_info: - redmine dependencies: - - src: git+https://gitea-s2i2s.isti.cnr.it/ISTI-ansible-roles/ansible-role-apache.git - version: master - name: apache - state: latest - when: ruby_use_mod_passenger - src: git+https://gitea-s2i2s.isti.cnr.it/ISTI-ansible-roles/ansible-role-nginx.git version: master name: nginx state: latest - when: ruby_use_unicorn diff --git a/tasks/base-config.yml b/tasks/base-config.yml deleted file mode 100644 index ed3ef4c..0000000 --- a/tasks/base-config.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -- name: Load the required apache modules - apache2_module: name={{ item }} state=present - with_items: '{{ redmine_base_apache_modules }}' - notify: apache2 reload - tags: [ 'apache', 'redmine' ] - -- name: Ensure that the apache ssl directory exists - file: dest=/etc/apache2/ssl state=directory owner=root group=root mode=0750 - tags: [ 'apache', 'redmine' ] - diff --git a/tasks/main.yml b/tasks/main.yml index 7864225..cb79c1d 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -5,18 +5,7 @@ when: ansible_distribution_file_variety == "Debian" - import_tasks: redmine.yml when: ansible_distribution_file_variety == "Debian" -- import_tasks: redmine-plugins.yml - when: ansible_distribution_file_variety == "Debian" -- import_tasks: base-config.yml - when: - - ruby_use_mod_passenger - - ansible_distribution_file_variety == "Debian" -- import_tasks: mod_passenger.yml - when: - - ruby_use_mod_passenger - - ansible_distribution_file_variety == "Debian" +#- import_tasks: redmine-plugins.yml +# when: ansible_distribution_file_variety == "Debian" - import_tasks: unicorn.yml - when: - - ruby_use_unicorn - - ansible_distribution_file_variety == "Debian" - + when: ansible_distribution_file_variety == "Debian" diff --git a/tasks/mod_passenger.yml b/tasks/mod_passenger.yml deleted file mode 100644 index 861bfd3..0000000 --- a/tasks/mod_passenger.yml +++ /dev/null @@ -1,24 +0,0 @@ ---- -- name: Install the phusion passenger repo key - apt_key: id=561F9B9CAC40B2F7 keyserver=keyserver.ubuntu.com state=present - register: update_apt_cache - when: ruby_use_mod_passenger - tags: [ 'ruby', 'redmine', 'passenger' ] - -- name: Install the phusion passenger repo - apt_repository: repo='deb https://oss-binaries.phusionpassenger.com/apt/passenger {{ ansible_distribution_release }} main' state=present update_cache=yes - when: ruby_use_mod_passenger - tags: [ 'ruby', 'redmine', 'passenger' ] - -- name: Install the apache mod_passenger package - apt: pkg=libapache2-mod-passenger state=present - when: ruby_use_mod_passenger - notify: apache2 reload - tags: [ 'ruby', 'redmine', 'passenger' ] - -- name: Install the mod-passenger configuration - apache2_module: name=passenger state=present - when: ruby_use_mod_passenger - notify: apache2 reload - tags: [ 'ruby', 'redmine', 'passenger' ] - diff --git a/tasks/redmine-plugins.yml b/tasks/redmine-plugins.yml index 5240676..c8edfbe 100644 --- a/tasks/redmine-plugins.yml +++ b/tasks/redmine-plugins.yml @@ -6,40 +6,43 @@ file: dest={{ redmine_glob_root_dir }}/plugins_download state=directory tags: [ 'redmine', 'redmine_plugins' ] -- name: Redmine better gantt plugin - get_url: url=https://github.com/kulesa/redmine_better_gantt_chart/releases/download/v.0.9.0/redmine_better_gantt_chart_0.9.0.zip dest={{ redmine_glob_root_dir }}/plugins_download/redmine_better_gantt_chart_0.9.0.zip - when: rm_better_gant_plugin - tags: [ 'redmine', 'redmine_plugins' ] - - name: Install the better gantt plugin - unarchive: src={{ redmine_glob_root_dir }}/plugins_download/redmine_better_gantt_chart_0.9.0.zip dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins copy=no owner=root group=root creates={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_better_gantt_chart/init.rb + git: + repo: '{{ rm_better_gantt_url }}' + dest: '{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/better_gantt_chart' + update: no notify: - - apache2 reload when needed - Reload unicorn when needed - when: rm_better_gant_plugin + when: rm_better_gantt_plugin tags: [ 'redmine', 'redmine_plugins' ] - name: Install the ldap sync plugin - git: repo=https://github.com/thorin/redmine_ldap_sync.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_ldap_sync update=no + git: repo={{ rm_ldap_sync_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_ldap_sync update=no notify: - Bundle install and reconfigure redmine - when: rm_ldap_synch + when: rm_ldap_sync tags: [ 'redmine', 'redmine_plugins', 'rm_ldap_synch' ] -- name: Cron job that manages the ldap synch - template: src=redmine-ldap-sync.cron.j2 dest=/etc/cron.d/redmine-ldap-sync owner=root group=root mode=0444 - when: rm_ldap_synch +- name: Cron job that manages the ldap sync + cron: + name: Sync the ldap users and groups + job: '{{ redmine_ldap_sync_cron_job }}' + user: '{{ redmine_user }}' + minute: '{{ redmine_ldap_sync_freq }}' + cron_file: redmine-ldap-sync + state: present + when: rm_ldap_sync tags: [ 'redmine', 'redmine_plugins', 'rm_ldap_synch' ] - name: Redmine login audit plugin - git: repo=https://github.com/martin-denizet/redmine_login_audit.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_login_audit update=no + git: repo={{ rm_login_audit_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_login_audit update=no notify: - Reconfigure redmine when: rm_login_audit_plugin tags: [ 'redmine', 'redmine_plugins' ] - name: Redmine subversion links plugin - git: repo=https://github.com/masamitsu-murase/redmine_add_subversion_links.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_add_subversion_links update=no + git: repo={{ rm_addsubversionlinks_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_add_subversion_links update=no when: rm_addsubversionlinks_plugin notify: - apache2 reload when needed @@ -47,28 +50,28 @@ tags: [ 'redmine', 'redmine_plugins' ] - name: Progressive projects list plugin - git: repo=https://github.com/stgeneral/redmine-progressive-projects-list.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/progressive_projects_list update=no + git: repo={{ rm_progressive_projects_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/progressive_projects_list update=no notify: - Reconfigure redmine when: rm_progressive_projects_plugin tags: [ 'redmine', 'redmine_plugins' ] - name: didyoumean plugin - git: repo=https://github.com/abahgat/redmine_didyoumean.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_didyoumean update=no + git: repo={{ rm_didyoumean_plugin_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_didyoumean update=no notify: - Reconfigure redmine when: rm_didyoumean_plugin tags: [ 'redmine', 'redmine_plugins' ] - name: Install the graphs plugin - git: repo=https://github.com/bradbeattie/redmine-graphs-plugin.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_graphs update=no + git: repo={{ rm_graphs_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_graphs update=no notify: - Reconfigure redmine when: rm_graphs_plugin tags: [ 'redmine', 'redmine_plugins' ] - name: Install the embedded tab plugin - git: repo=https://github.com/jamtur01/redmine_tab.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_tab update=no + git: repo={{ rm_embedded_tabs_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_tab update=no notify: - apache2 reload when needed - Reload unicorn when needed @@ -76,7 +79,7 @@ tags: [ 'redmine', 'redmine_plugins', 'rm_embedded_tabs' ] - name: Install the recurring-tasks plugin - git: repo=https://github.com/nutso/redmine-plugin-recurring-tasks.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/recurring_tasks update=no + git: repo={{ rm_recurring_tasks_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/recurring_tasks update=no notify: - Bundle install and reconfigure redmine when: rm_recurring_tasks_plugin @@ -87,54 +90,22 @@ when: rm_recurring_tasks_plugin tags: [ 'redmine', 'redmine_plugins', 'rm_recurring_tasks' ] -- name: Redmine agile plugin. Free version from www.redminecrm.com - unarchive: src=redmine_agile.zip dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins creates={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_agile/init.rb - when: redmine_install_agile_plugin - notify: - - Reconfigure agile plugin - - Bundle install - tags: [ 'redmine', 'redmine_plugins' ] - -- name: Get the scrum plugin - get_url: url=https://redmine.ociotec.com/attachments/download/302/scrum%20v0.9.1.tar.gz dest={{ redmine_glob_root_dir }}/plugins_download/scrum_v0.9.1.tar.gz validate_certs=no - when: rm_scrum_plugin - tags: [ 'redmine', 'redmine_plugins' ] - -- name: Unarchive the scrum plugin - unarchive: src={{ redmine_glob_root_dir }}/plugins_download/scrum_v0.9.1.tar.gz dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins copy=no owner=root group=root creates={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/scrum/init.rb - when: rm_scrum_plugin - tags: [ 'redmine', 'redmine_plugins' ] - -- name: Rename the scrum plugin - shell: mv "{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/scrum v0.9.1" {{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/scrum creates={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/scrum/init.rb - when: rm_scrum_plugin - notify: - - Bundle install and reconfigure redmine - tags: [ 'redmine', 'redmine_plugins' ] - - name: Install the redmine advanced roadmap plugin - git: repo=https://github.com/Coren/redmine_advanced_roadmap_v2.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/advanced_roadmap_v2 update=no + git: repo={{ rm_advanced_roadmap_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/advanced_roadmap_v2 update=no when: rm_advanced_roadmap_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_ar' ] - name: Install the redmine scrum2b plugin - git: repo=https://github.com/scrum2b/scrum2b version=2-1-stable dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/scrum2b update=no + git: repo={{ rm_scrum2b_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/scrum2b update=no when: rm_scrum2b_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_scrum2b' ] -- name: Install the auto watcher for groups plugin - git: repo=https://github.com/akuznecov/redmine_auto_watchers_from_groups dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_auto_watchers_from_groups update=no - when: rm_autowatcher_plugin - notify: - - Bundle install and reconfigure redmine - tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_autowatcher' ] - - name: Install the issue reminder plugin - git: repo=https://github.com/Hopebaytech/redmine_issue_reminder version=redmine2.6 dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_issue_reminder update=no + git: repo={{ rm_issuereminder_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_mail_reminder update=no when: rm_issuereminder_plugin notify: - Bundle install and reconfigure redmine @@ -146,7 +117,7 @@ tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_issuereminder' ] - name: Install the update reminder plugin - git: repo=https://github.com/arkhitech/redmine_update_reminder dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_update_reminder update=no + git: repo={{ rm_updatereminder_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_update_reminder update=no when: rm_updatereminder_plugin notify: - Bundle install and reconfigure redmine @@ -158,175 +129,141 @@ tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_updatereminder' ] - name: Install the mention plugin - git: repo=https://github.com/stpl/redmine_mention_plugin dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_mention_plugin update=no + git: repo={{ rm_mention_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_mention_plugin update=no when: rm_mention_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_mention' ] - name: Install the default custom query plugin - git: repo=https://github.com/hidakatsuya/redmine_default_custom_query dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_default_custom_query update=no + git: repo={{ rm_defaultcustomquery_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_default_custom_query update=no when: rm_defaultcustomquery_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_defaultcustomquery' ] -- name: Install the gamification plugin - git: repo=https://github.com/mauricio-camayo/redmine_gamification_plugin dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_gamification_plugin update=no - when: rm_gamification_plugin - notify: - - Bundle install and reconfigure redmine - tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_gamification' ] - - name: Install the closes resolved issues plugin - git: repo=https://github.com/Jogi1j/redmine_closes_resolved_issues dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_closes_resolved_issues update=no + git: repo={{ rm_closesresolvedissue_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_closes_resolved_issues update=no when: rm_closesresolvedissue_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_closesresolvedissue' ] - name: Install the default assign plugin - git: repo=https://github.com/giddie/redmine_default_assign dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_default_assign update=no + git: repo={{ rm_defaultassign_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_default_assign update=no when: rm_defaultassign_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_defaultassign' ] - name: Install the once assigned ever watcher plugin - git: repo=https://github.com/raafael911/redmine_once_assigned_ever_watcher dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_once_assigned_ever_watcher update=no + git: repo={{ rm_onceassignedeverwatcher_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/once_assigned_ever_watcher update=no when: rm_onceassignedeverwatcher_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_onceassignedeverwatcher' ] - name: Install the clipboard image paste plugin - git: repo=https://github.com/peclik/clipboard_image_paste dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/clipboard_image_paste update=no + git: repo={{ rm_clipboardimagepaste_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/clipboard_image_paste update=no when: rm_clipboardimagepaste_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_clipboardimagepaste' ] - name: Install the hotkeys js plugin - git: repo=https://github.com/sasha-ch/redmine_hotkeys_js version=v0.0.3 dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/clipboard_hotkeys_js update=no + git: repo={{ rm_hotkeysjs_url }} version=v0.0.3 dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_hotkeys_js update=no when: rm_hotkeysjs_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_hotkeysjs' ] - name: Install the issues sorting plugin - git: repo=https://github.com/JohnBat26/redmine_issues_sorting dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_issues_sorting update=no + git: repo={{ rm_issuessorting_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_issues_sorting update=no when: rm_issuessorting_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_issuessorting' ] - name: Install the mylyn plugin - git: repo=https://github.com/ljader/redmine-mylyn-plugin dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_mylyn_plugin update=no + git: repo={{ rm_mylyn_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_mylyn_plugin update=no when: rm_mylyn_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_mylyn' ] - name: Install the quick edit plugin - git: repo=git://git.sourceforge.jp/gitroot/quickedit/quick_edit.git accept_hostkey=yes dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/quick_edit update=no + git: repo={{ rm_quickedit_url }} accept_hostkey=yes dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/quick_edit update=no when: rm_quickedit_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_quickedit' ] - name: Install the quick view plugin - git: repo=git://git.sourceforge.jp/gitroot/quickedit/quick_view.git accept_hostkey=yes dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/quick_view update=no + git: repo={{ rm_quickview_url }} accept_hostkey=yes dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/quick_view update=no when: rm_quickview_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_quickview' ] -- name: Get the code review plugin - get_url: url=https://bitbucket.org/haru_iida/redmine_code_review/downloads/redmine_code_review-0.6.5.zip dest={{ redmine_glob_root_dir }}/plugins_download/redmine_code_review-0.6.5.zip validate_certs=no - when: rm_codereview_plugin - tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_codereview' ] - -- name: Unarchive the code review plugin - unarchive: src={{ redmine_glob_root_dir }}/plugins_download/redmine_code_review-0.6.5.zip dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins copy=no owner=root group=root creates={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_code_review/init.rb - when: rm_codereview_plugin - notify: - - Bundle install and reconfigure redmine - tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_codereview' ] - -- name: Unarchive the global roles plugin -# manual download required http://rmplus.pro/en/redmine/plugins/global_roles - unarchive: src={{ redmine_glob_root_dir }}/plugins_download/global_roles.zip dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins copy=no owner=root group=root creates={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/global_roles/init.rb - when: rm_globalroles_plugin - notify: - - Bundle install and reconfigure redmine - tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_globalroles' ] - -- name: Unarchive the unread issues plugin -# manual download required http://rmplus.pro/en/redmine/plugins/unread_issues - unarchive: src={{ redmine_glob_root_dir }}/plugins_download/unread_issues.zip dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins copy=no owner=root group=root creates={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/unread_issues/init.rb - when: rm_unreadissues_plugin - notify: - - Bundle install and reconfigure redmine - tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_unreadissues' ] - -- name: Unarchive the usability plugin -# manual download required http://rmplus.pro/en/redmine/plugins/usability - unarchive: src={{ redmine_glob_root_dir }}/plugins_download/usability.zip dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins copy=no owner=root group=root creates={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/usability/init.rb - when: rm_usability_plugin - notify: - - Bundle install and reconfigure redmine - tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_usability' ] - - name: Install the mylyn connector plugin - git: repo=git://github.com/danmunn/redmine_mylyn_connector.git accept_hostkey=yes dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_mylyn_connector update=no + git: repo={{ rm_mylynconnector_url }} accept_hostkey=yes dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_mylyn_connector update=no when: rm_mylynconnector_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_mylynconnector' ] - name: Install the mentions plugin - git: repo=https://github.com/arkhitech/redmine_mentions dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_mentions update=no + git: repo={{ rm_mention_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_mentions update=no when: rm_mentions_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_mentions' ] - name: Install the external wiki plugin - git: repo=https://github.com/nutso/redmine-plugin-wiki-external.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/wiki_external update=no + git: repo={{ rm_wiki_external_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/wiki_external update=no when: rm_wiki_external_plugin notify: Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_wiki_external' ] - name: Install the paste plugin - git: repo=https://github.com/commandprompt/redmine_pastebin.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_pastebin update=no + git: repo={{ rm_pastebin_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_pastebin update=no when: rm_pastebin_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_pastebin' ] - name: Install the issue_templates plugin - git: repo=https://github.com/akiko-pusu/redmine_issue_templates dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_issue_templates update=no + git: repo={{ rm_issue_templates_url }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_issue_templates update=no when: rm_issue_templates_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_issue_templates' ] - name: Install the issue_todo_lists plugin - git: repo=https://github.com/canidas/redmine_issue_todo_lists dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_issue_todo_lists update=no + git: + repo: '{{ rm_involvement_url }}' + dest: '{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_issue_todo_lists' + update: no when: rm_issue_todo_lists_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_issue_todo_lists' ] - name: Install the involvement filter plugin - git: repo=https://github.com/commandprompt/redmine_involvement_filter.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_involvement_filter update=no + git: + repo: '{{ rm_involvement_url }}' + dest: '{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_involvement_filter' + update: no when: rm_involvement_plugin notify: - Bundle install and reconfigure redmine tags: [ 'redmine', 'redmine_plugins', 'redmine_plugins_involvement_filter' ] - name: Install the omniauth Oauth plugin - git: repo=https://github.com/arlin2050/redmine_omniauth_client.git dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_omniauth_client update=no + git: + repo: '{{ rm_omniauth_url }}' + dest: '{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/plugins/redmine_omniauth_client' + update: no notify: - Bundle install and reconfigure redmine when: rm_omniauth_plugin diff --git a/tasks/redmine.yml b/tasks/redmine.yml index f97814e..c270aeb 100644 --- a/tasks/redmine.yml +++ b/tasks/redmine.yml @@ -16,32 +16,68 @@ - name: Ensure that the redmine user can write its $HOME/.subversion to store the svn site ssl certificate file: dest={{ redmine_user_home }}/.subversion state=directory owner={{ redmine_user }} group={{ redmine_group }} - - name: Get the redmine tarball - get_url: url=http://www.redmine.org/releases/redmine-{{ redmine_version }}.tar.gz dest={{ redmine_glob_root_dir }}/redmine-{{ redmine_version }}.tar.gz + - name: Get the redmine {{ redmine_version }} tarball + get_url: url={{ redmine_download_url }}/redmine-{{ redmine_version }}.tar.gz dest={{ redmine_glob_root_dir }}/redmine-{{ redmine_version }}.tar.gz + when: not redmine_install_from_subversion - - name: Explode the redmine archive + - name: Unarchive the redmine {{ redmine_version }} archive unarchive: src={{ redmine_glob_root_dir }}/redmine-{{ redmine_version }}.tar.gz dest={{ redmine_glob_root_dir }} copy=no owner=root group=root creates={{ redmine_glob_root_dir }}/redmine-{{ redmine_version }}/Rakefile register: redmine_install + when: not redmine_install_from_subversion - - name: Create the right path for the application. + - name: Create the right path for the application when installing using the tar file file: src={{ redmine_glob_root_dir }}/redmine-{{ redmine_version }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }} state=link + when: not redmine_install_from_subversion + + - name: Install the subversion packages + become_user: root + apt: + pkg: subversion + state: present + cache_valid_time: 1800 + when: redmine_install_from_subversion + + - name: Download redmine {{ redmine_version }} from subversion + subversion: + repo: '{{ redmine_subversion_url }}/{{ redmine_major_version }}.{{ redmine_minor_version }}-stable' + dest: '{{ redmine_glob_root_dir }}/redmine-{{ redmine_major_version }}.{{ redmine_minor_version }}' + checkout: yes + force: yes + update: yes + when: redmine_install_from_subversion + + - name: Create the right path for the application when installing from subversion + file: src={{ redmine_glob_root_dir }}/redmine-{{ redmine_major_version }}.{{ redmine_minor_version }} dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }} state=link + when: redmine_install_from_subversion + + - name: Create the directory for logs and static files + file: + dest: '{{ redmine_storage_path }}' + state: directory + owner: '{{ redmine_user }}' + group: '{{ redmine_group }}' + recurse: yes + when: redmine_storage_path is defined + + - name: Link the logs directory under /var/log + file: + src: '{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/log' + dest: /var/log/redmine + state: link - name: Install the database configuration template: src=redmine-database.yml.j2 dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/database.yml owner=root group={{ redmine_group }} mode=0440 notify: - - apache2 reload when needed - Reload unicorn when needed - name: Install the configuration file. Needed to send email template: src=redmine-configuration.yml.j2 dest=/{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/configuration.yml owner=root group={{ redmine_group }} mode=0440 notify: - - apache2 reload when needed - Reload unicorn when needed - name: Install the additional environment file template: src=redmine_additional_environment.rb.j2 dest=/{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/additional_environment.rb owner=root group={{ redmine_group }} mode=0440 notify: - - apache2 reload when needed - Reload unicorn when needed - name: Install the gems required by redmine @@ -53,6 +89,15 @@ shell: cd {{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}; rake generate_secret_token ; chmod 440 {{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/initializers/secret_token.rb ; chgrp {{ redmine_group }} {{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/initializers/secret_token.rb args: creates: '{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/initializers/secret_token.rb' + when: redmine_secret_token is not defined + + - name: Install the master key + copy: + content: '{{ redmine_master_key }}' + dest: '{{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/master.key' + owner: root + group: '{{ redmine_group }}' + mode: '0440' - name: Initialize the DB shell: cd {{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}; RAILS_ENV=production rake db:migrate && touch {{ redmine_glob_root_dir }}/.{{ redmine_inst_dir }}.db_initialized @@ -67,19 +112,7 @@ tags: [ 'redmine', 'redmine_db_init' ] - name: Install the packages needed by plugins or to build plugins required gems - apt: pkg={{ item }} state=present - with_items: - - libxslt1-dev - - # The themes come from http://www.redminecrm.com/ - - name: Install some optional themes - unarchive: src={{ item }}-theme.zip dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/public/themes creates={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/public/themes/{{ item }} - with_items: - - a1 - - circle - notify: - - apache2 reload when needed - - Reload unicorn when needed + apt: pkg=libxslt1-dev state=present cache_valid_time=1800 - name: Add unicorn to the redmine Gemfile copy: dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/Gemfile.local content='gem "unicorn"\n' owner={{ redmine_user }} group={{ redmine_group }} diff --git a/tasks/rubygems.yml b/tasks/rubygems.yml index 0434122..1587e84 100644 --- a/tasks/rubygems.yml +++ b/tasks/rubygems.yml @@ -7,7 +7,7 @@ - name: Install the gem packages needed by some external utilities gem: name={{ redmine_additional_gems }} state=latest - when: redmine_additional_gems is defined + when: redmine_additional_gems != [] tags: - ruby - redmine diff --git a/tasks/unicorn.yml b/tasks/unicorn.yml index cd9e4c5..df383f2 100644 --- a/tasks/unicorn.yml +++ b/tasks/unicorn.yml @@ -1,36 +1,14 @@ --- -- block: - - name: Install the unicorn ruby-on-rails service and its dependencies - gem: name={{ item }} state=latest - with_items: '{{ unicorn_gems }}' - - - name: Create the unicorn pid directory - file: dest=/var/run/unicorn state=directory owner={{ redmine_user }} group={{ redmine_user }} mode=0750 - - - name: Install the unicorn startup file for redmine - copy: src=redmine.init dest=/etc/init.d/redmine owner=root group=root mode=0755 - - - name: Ensure that the unicorn service is enabled and running on trusty - service: name={{ redmine_sysvinit_service_name }} state=started enabled=yes - when: ruby_use_unicorn - - tags: [ 'ruby', 'redmine', 'unicorn' ] - when: - - ruby_use_unicorn - - ansible_distribution_version is version_compare('14.04', '==') - -- block: +- block: - name: Install the unicorn package apt: pkg=unicorn state=present cache_valid_time=1800 - name: Install a nginx configuration of the unicorn backend - template: src=nginx_unicorn.conf dest=/etc/nginx/conf.d/nginx_unicorn.conf + template: src=nginx_unicorn.conf.j2 dest=/etc/nginx/conf.d/nginx_unicorn.conf notify: Restart nginx tags: [ 'ruby', 'redmine', 'unicorn' ] - when: - - ruby_use_unicorn - - ansible_distribution_version is version_compare('18.04', '==') + when: ansible_distribution_version is version_compare('18.04', '==') - block: - name: Create the unicorn log directory @@ -47,11 +25,16 @@ template: src=unicorn.conf.rb.j2 dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/unicorn.conf.rb owner=root group=root mode=0644 - name: Install the systemd unit that globally manages the unicorn service - template: src=systemd_unicorn.service dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/unicorn@.service + template: src=systemd_unicorn.service.j2 dest={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/unicorn@.service notify: Reload systemd after the system unit installation - name: Link the systemd unit that globally manages the unicorn service file: src={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/unicorn@.service dest=/etc/systemd/system/multi-user.target.wants/unicorn@.service state=link + notify: Reload systemd after the system unit installation + + - name: Add the systemd instance for the specific service + file: src={{ redmine_glob_root_dir }}/{{ redmine_inst_dir }}/config/unicorn@.service dest=/etc/systemd/system/multi-user.target.wants/unicorn@{{ redmine_inst_name }}.service state=link + notify: Reload systemd after the system unit installation - name: Reload systemd after the system unit installation meta: flush_handlers diff --git a/templates/nginx_unicorn.conf b/templates/nginx_unicorn.conf.j2 similarity index 100% rename from templates/nginx_unicorn.conf rename to templates/nginx_unicorn.conf.j2 diff --git a/templates/redmine-configuration.yml.j2 b/templates/redmine-configuration.yml.j2 index beceb01..0a5a4e0 100644 --- a/templates/redmine-configuration.yml.j2 +++ b/templates/redmine-configuration.yml.j2 @@ -11,7 +11,11 @@ production: email_delivery: - delivery_method: :async_sendmail + delivery_method: :sendmail + +{% if redmine_storage_path is defined %} + attachments_storage_path: {{ redmine_storage_path }} +{% endif %} # Key used to encrypt sensitive data in the database (SCM and LDAP passwords). # If you don't want to enable data encryption, just leave it blank. diff --git a/templates/systemd_unicorn.service b/templates/systemd_unicorn.service.j2 similarity index 100% rename from templates/systemd_unicorn.service rename to templates/systemd_unicorn.service.j2 diff --git a/vars/main.yml b/vars/main.yml index 2475a45..eb498f2 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -1,50 +1,69 @@ --- - unicorn_gems: - - unicorn - - coderay - unicorn_apache_modules: - - proxy_balancer - - proxy - - proxy_http - - lbmethod_byrequests - - lbmethod_bytraffic - - lbmethod_bybusyness - - lbmethod_heartbeat - - # For Ubuntu trusty - redmine_base_packages: - - subversion - - git-core - - curl - - 'ruby{{ trusty_ruby_version }}' - - rails - - ruby-rmagick - - 'ruby{{ trusty_ruby_version }}-dev' - - rails - - zlib1g-dev - - libpq-dev - - libmysqld-dev - - libmagickwand-dev - - libmagickcore-dev - - imagemagick - - redmine_bionic_packages: - - subversion - - git-core - - curl - - ruby - - rails - - ruby-rmagick - - ruby-dev - - rails - - zlib1g-dev - - libpq-dev - - libmysqld-dev - - libmagickwand-dev - - libmagickcore-dev - - imagemagick - - redmine_base_apache_modules: - - ssl - - rewrite - - expires +unicorn_gems: + - unicorn + - coderay +unicorn_apache_modules: + - proxy_balancer + - proxy + - proxy_http + - lbmethod_byrequests + - lbmethod_bytraffic + - lbmethod_bybusyness + - lbmethod_heartbeat + +# For Ubuntu trusty +redmine_base_packages: + - subversion + - git-core + - curl + - 'ruby{{ trusty_ruby_version }}' + - rails + - ruby-rmagick + - 'ruby{{ trusty_ruby_version }}-dev' + - rails + - zlib1g-dev + - libpq-dev + - libmysqld-dev + - libmagickwand-dev + - libmagickcore-dev + - imagemagick + +redmine_bionic_packages: + - subversion + - git-core + - curl + - ruby + - rails + - ruby-rmagick + - ruby-dev + - rails + - zlib1g-dev + - libpq-dev + - libmysqld-dev + - libmagickwand-dev + - libmagickcore-dev + - imagemagick + +redmine_base_apache_modules: + - ssl + - rewrite + - expires + +redmine_nginx_frontend: True +redmine_nginx_use_common_virthost: True +redmine_nginx_virthosts: + - virthost_name: '{{ ansible_fqdn }}' + listen: '{{ http_port }}' + server_name: '{{ ansible_fqdn }}' + ssl_enabled: True + ssl_only: True + ssl_letsencrypt_certs: '{{ nginx_letsencrypt_managed }}' + root: '{{ redmine_web_root }}' + error_path: '{{ redmine_web_root }}' + additional_options: + - try_files $uri/index.html $uri.html $uri @app + server_tokens: 'off' + proxy_standard_setup: True + locations: + - location: '@app' + target: http://unicorn