Zammad-Rolle
This commit is contained in:
commit
a6b16394ed
27 changed files with 552 additions and 0 deletions
52
tasks/database.yml
Normal file
52
tasks/database.yml
Normal file
|
@ -0,0 +1,52 @@
|
|||
---
|
||||
- name: "database: Datenbank anlegen"
|
||||
postgresql_db:
|
||||
name: "{{ zammad_database_name }}"
|
||||
encoding: UTF8
|
||||
template: template0
|
||||
become: true
|
||||
become_user: postgres
|
||||
delegate_to: "{{ database_host }}"
|
||||
|
||||
- name: "database: Benutzer einrichten"
|
||||
postgresql_user:
|
||||
name: "{{ zammad_database_user }}"
|
||||
password: "{{ zammad_database_password }}"
|
||||
db: "{{ zammad_database_name }}"
|
||||
become: true
|
||||
become_user: postgres
|
||||
delegate_to: "{{ database_host }}"
|
||||
|
||||
- name: "database: Konfiguration kopieren"
|
||||
template:
|
||||
src: database.yml.j2
|
||||
dest: "{{ zammad_database_configuration }}"
|
||||
|
||||
- name: "database: Stoppe Service"
|
||||
service:
|
||||
name: zammad
|
||||
state: stopped
|
||||
register: unused_disable
|
||||
failed_when: "unused_disable is failed and ('find' not in unused_disable.msg and 'found' not in unused_disable.msg)"
|
||||
|
||||
- name: "database: Führe Migrationen aus"
|
||||
shell: "RAILS_ENV=production rbenv exec bundle exec rake db:migrate"
|
||||
args:
|
||||
chdir: "{{ zammad_home }}"
|
||||
become: true
|
||||
become_user: "{{ zammad_user }}"
|
||||
|
||||
- name: "database: Führe Seeds aus"
|
||||
shell: "RAILS_ENV=production rbenv exec bundle exec rake db:seed"
|
||||
args:
|
||||
chdir: "{{ zammad_home }}"
|
||||
become: true
|
||||
become_user: "{{ zammad_user }}"
|
||||
when: zammad_database_configured.stat.exists == False
|
||||
|
||||
- name: "database: Precompile Assets"
|
||||
shell: "RAILS_ENV=production rbenv exec bundle exec rake assets:precompile"
|
||||
args:
|
||||
chdir: "{{ zammad_home }}"
|
||||
become: true
|
||||
become_user: "{{ zammad_user }}"
|
29
tasks/gateway.yml
Normal file
29
tasks/gateway.yml
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
- name: "gateway: Domain zur Zertifikatsliste hinzufügen"
|
||||
lineinfile:
|
||||
path: /etc/dehydrated/domains.txt
|
||||
insertafter: "^### systemausfall"
|
||||
line: "{{ zammad_domain }}"
|
||||
when: "'dehydrated' in ansible_facts.packages"
|
||||
register: add_certificate
|
||||
delegate_to: "{{ gateway_host }}"
|
||||
|
||||
- name: "gateway: Zertifikat erstellen"
|
||||
command: dehydrated --cron -g
|
||||
when: add_certificate.changed
|
||||
delegate_to: "{{ gateway_host }}"
|
||||
|
||||
- name: "gateway: Proxy einrichten"
|
||||
template:
|
||||
src: nginx-rp-site.j2
|
||||
dest: "/etc/nginx/sites-available/{{ zammad_domain }}"
|
||||
force: no
|
||||
delegate_to: "{{ gateway_host }}"
|
||||
|
||||
- name: "gateway: Seite aktivieren"
|
||||
file:
|
||||
src: "/etc/nginx/sites-available/{{ zammad_domain }}"
|
||||
dest: "/etc/nginx/sites-enabled/{{ zammad_domain }}"
|
||||
state: link
|
||||
notify: reload reverse_proxy
|
||||
delegate_to: "{{ gateway_host }}"
|
4
tasks/locales.yml
Normal file
4
tasks/locales.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
- name: "locales: Richte locales ein"
|
||||
locale_gen:
|
||||
name: en_US.UTF-8
|
||||
state: present
|
17
tasks/main.yml
Normal file
17
tasks/main.yml
Normal file
|
@ -0,0 +1,17 @@
|
|||
- name: "Prüfe vorhandene Datenbank-Konfiguration"
|
||||
stat:
|
||||
path: "{{ zammad_database_configuration }}"
|
||||
register: zammad_database_configured
|
||||
|
||||
- import_tasks: packages.yml
|
||||
- import_tasks: locales.yml
|
||||
- import_tasks: user.yml
|
||||
- import_tasks: zammad.yml
|
||||
- import_tasks: ruby.yml
|
||||
- import_tasks: database.yml
|
||||
- import_tasks: syslog.yml
|
||||
- import_tasks: webserver.yml
|
||||
- import_tasks: systemd.yml
|
||||
- import_tasks: monit.yml
|
||||
tags: monit
|
||||
- import_tasks: gateway.yml
|
5
tasks/monit.yml
Normal file
5
tasks/monit.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
- name: "monit: Kopiere Konfiguration"
|
||||
template:
|
||||
src: monit.j2
|
||||
dest: /etc/monit/conf-enabled/zammad
|
||||
notify: reload monit
|
37
tasks/packages.yml
Normal file
37
tasks/packages.yml
Normal file
|
@ -0,0 +1,37 @@
|
|||
---
|
||||
- name: "packages: Fakten sammeln"
|
||||
package_facts:
|
||||
manager: apt
|
||||
|
||||
- name: "packages: Abhängigkeiten installieren"
|
||||
apt:
|
||||
default_release: "{{ debian_version }}"
|
||||
pkg:
|
||||
- autoconf
|
||||
- automake
|
||||
- autotools-dev
|
||||
- bison
|
||||
- build-essential
|
||||
- curl
|
||||
- gawk
|
||||
- git
|
||||
- libffi-dev
|
||||
- libgdbm-dev
|
||||
- libgmp-dev
|
||||
- libimlib2-dev
|
||||
- libncurses5-dev
|
||||
- libpq-dev
|
||||
- libreadline-dev
|
||||
- libssl-dev
|
||||
- libtool
|
||||
- libxml2-dev
|
||||
- libxslt1-dev
|
||||
- libyaml-0-2
|
||||
- libyaml-dev
|
||||
- locales
|
||||
- nginx-light
|
||||
- patch
|
||||
- pkg-config
|
||||
- rbenv
|
||||
- sudo
|
||||
- zlib1g-dev
|
50
tasks/ruby.yml
Normal file
50
tasks/ruby.yml
Normal file
|
@ -0,0 +1,50 @@
|
|||
- name: "ruby: rbenv einrichten"
|
||||
lineinfile:
|
||||
path: "{{ zammad_user_home }}/.bashrc"
|
||||
line: eval "$(rbenv init -)"
|
||||
|
||||
- name: "ruby: rbenv plugin-verzeichnis erstellen"
|
||||
file:
|
||||
path: "{{ ruby_path }}/plugins"
|
||||
state: directory
|
||||
owner: "{{ zammad_user }}"
|
||||
group: "{{ zammad_user }}"
|
||||
|
||||
- name: "ruby: ruby-build installieren"
|
||||
git:
|
||||
repo: "{{ ruby_build_repo }}"
|
||||
dest: "{{ ruby_path }}/plugins/ruby-build"
|
||||
|
||||
- name: "ruby: Version prüfen"
|
||||
stat:
|
||||
path: "{{ ruby_path }}/versions/{{ ruby_version }}"
|
||||
register: ruby_installed
|
||||
|
||||
- name: "ruby installieren"
|
||||
command:
|
||||
cmd: "rbenv install {{ ruby_version }}"
|
||||
chdir: "{{ zammad_user_home }}"
|
||||
become: true
|
||||
become_user: "{{ zammad_user }}"
|
||||
when: ruby_installed.stat.exists == False
|
||||
|
||||
- name: "ruby aktivieren"
|
||||
shell: "rbenv local {{ ruby_version }}"
|
||||
args:
|
||||
chdir: "{{ zammad_home }}"
|
||||
become: true
|
||||
become_user: "{{ zammad_user }}"
|
||||
|
||||
- name: "ruby: Bundler installieren"
|
||||
command:
|
||||
cmd: rbenv exec gem install bundler
|
||||
chdir: "{{ zammad_home }}"
|
||||
become: true
|
||||
become_user: "{{ zammad_user }}"
|
||||
|
||||
- name: "ruby: Ruby-Abhängigkeiten installieren"
|
||||
shell: "RAILS_ENV=production {{ ruby_bin_path }}/bundle install --without test development mysql"
|
||||
args:
|
||||
chdir: "{{ zammad_home }}"
|
||||
become: true
|
||||
become_user: "{{ zammad_user }}"
|
10
tasks/syslog.yml
Normal file
10
tasks/syslog.yml
Normal file
|
@ -0,0 +1,10 @@
|
|||
- name: "syslog: Erstelle Verzeichnis"
|
||||
file:
|
||||
src: "{{ zammad_home }}/log"
|
||||
dest: "{{ zammad_log_path }}"
|
||||
state: link
|
||||
|
||||
- name: "syslog: Konfiguriere logrotate"
|
||||
template:
|
||||
src: logrotate.j2
|
||||
dest: /etc/logrotate.d/zammad
|
32
tasks/systemd.yml
Normal file
32
tasks/systemd.yml
Normal file
|
@ -0,0 +1,32 @@
|
|||
- name: "systemd: Kopiere Services"
|
||||
template:
|
||||
src: "systemd/{{ item }}.j2"
|
||||
dest: "/etc/systemd/system/{{ item }}"
|
||||
loop:
|
||||
- zammad-rails.service
|
||||
- zammad-scheduler.service
|
||||
- zammad-websocket.service
|
||||
|
||||
- name: "systemd: Kopiere Zammad-Service"
|
||||
copy:
|
||||
src: zammad.service
|
||||
dest: /etc/systemd/system/zammad.service
|
||||
|
||||
- name: "systemd: Erstelle Konfigurationsverzeichnis"
|
||||
file:
|
||||
path: /etc/zammad
|
||||
state: directory
|
||||
|
||||
- name: "systemd: Kopiere Konfiguration"
|
||||
copy:
|
||||
src: zammad.env
|
||||
dest: /etc/zammad/zammad.env
|
||||
force: no
|
||||
|
||||
- name: "systemd: Aktiviere Service"
|
||||
systemd:
|
||||
enabled: yes
|
||||
daemon_reload: yes
|
||||
state: started
|
||||
name: zammad
|
||||
|
6
tasks/user.yml
Normal file
6
tasks/user.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
- name: "user: Systemkonto anlegen"
|
||||
user:
|
||||
name: "{{ zammad_user }}"
|
||||
shell: /bin/bash
|
||||
password_lock: yes
|
12
tasks/webserver.yml
Normal file
12
tasks/webserver.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
- name: "webserver: Konfiguration kopieren"
|
||||
template:
|
||||
src: nginx-site.j2
|
||||
dest: "{{ zammad_webserver_configuration }}"
|
||||
|
||||
- name: "webserver: Kofiguration aktivieren"
|
||||
file:
|
||||
src: "{{ zammad_webserver_configuration }}"
|
||||
dest: "/etc/nginx/sites-enabled/{{ zammad_domain }}"
|
||||
state: link
|
||||
|
||||
|
20
tasks/zammad.yml
Normal file
20
tasks/zammad.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
- name: "zammad: Hole Zammad Repo"
|
||||
git:
|
||||
repo: "{{ zammad_repo }}"
|
||||
dest: "{{ zammad_home }}"
|
||||
version: "{{ zammad_version }}"
|
||||
force: yes
|
||||
|
||||
- name: "zammad: Ändere Besitzrechte"
|
||||
file:
|
||||
path: "{{ zammad_home }}"
|
||||
state: directory
|
||||
recurse: yes
|
||||
owner: "{{ zammad_user }}"
|
||||
group: "{{ zammad_user }}"
|
||||
|
||||
# https://github.com/zammad/zammad/issues/325
|
||||
- name: "zammad: Wende plain-Text-Patch an"
|
||||
patch:
|
||||
src: plain-text.patch
|
||||
dest: "{{ zammad_home }}/app/models/channel/email_build.rb"
|
Loading…
Add table
Add a link
Reference in a new issue