|
|
- ---
- - name: 'install requirements'
- apt:
- pkg:
- - 'postgresql'
- - 'postgresql-contrib'
- - 'python3-psycopg2'
- - 'ca-certificates'
- - 'gnupg'
- state: 'present'
- update_cache: true
- cache_valid_time: 3600
- tags:
- - 'packages'
-
- - name: 'nodejs | trust apt repo'
- apt_key:
- id: '9FD3B784BC1C6FC31A8A0A1C1655A0AB68576280'
- url: 'https://deb.nodesource.com/gpgkey/nodesource.gpg.key'
- state: 'present'
- tags:
- - 'packages'
-
- - name: 'nodejs | add apt repo'
- apt_repository:
- repo: '{{ item }}'
- state: 'present'
- update_cache: true
- loop:
- - 'deb https://deb.nodesource.com/node_12.x {{ ansible_distribution_release }} main'
- - 'deb-src https://deb.nodesource.com/node_12.x {{ ansible_distribution_release }} main'
- tags:
- - 'packages'
-
- - name: 'nodejs | install'
- apt:
- pkg: 'nodejs'
- state: 'present'
- update_cache: true
- cache_valid_time: 3600
- tags:
- - 'packages'
-
- - name: 'create etherpad system user'
- user:
- name: 'etherpad'
- state: 'present'
-
- - block:
- - name: 'create etherpad DB'
- postgresql_db:
- name: 'etherpad'
- - name: 'create etherpad DB user'
- postgresql_user:
- name: 'etherpad'
- db: 'etherpad'
- priv: 'ALL'
- become: true
- become_method: 'su'
- become_user: 'postgres'
-
- - name: 'create etherpad directory'
- file:
- path: '/home/etherpad/etherpad'
- state: 'directory'
- owner: 'etherpad'
- group: 'etherpad'
-
- - name: 'update tls ldap server ca'
- copy:
- content: '{{ ldap_tls_server_ca }}'
- dest: '/etc/ldap/server_ca.crt'
- tags:
- - 'tls_int'
-
- - name: 'configure ldap client'
- copy:
- src: 'ldap.conf'
- dest: '/etc/ldap/ldap.conf'
-
- - name: 'generate etherpad ldap password'
- gen_passwd: length=32
- register: etherpad_ldap_passwd
- no_log: true
-
- - name: 'set etherpad ldap password in ldap'
- delegate_to: 'localhost'
- ldap_passwd:
- dn: 'cn={{ host_fqdn }},ou=Server,{{ ldap_basedn }}'
- passwd: '{{ etherpad_ldap_passwd.passwd }}'
- server_uri: 'ldap://{{ ldap_server }}'
- start_tls: '{{ ldap_tls_enabled }}'
- bind_dn: '{{ ldap_admin_dn }}'
- bind_pw: '{{ ldap_admin_pw }}'
-
- - block:
- - name: 'download and unpack etherpad'
- unarchive:
- remote_src: true
- src: 'https://github.com/ether/etherpad-lite/archive/{{ etherpad_version }}.tar.gz'
- dest: '/home/etherpad/etherpad'
- extra_opts:
- - '--strip-components=1'
- tags:
- - 'packages'
-
- - name: 'create node_modules dir'
- file:
- path: '/home/etherpad/etherpad/node_modules'
- state: 'directory'
-
- - name: 'create ep_etherpad-lite symlink'
- file:
- src: '../src'
- path: '/home/etherpad/etherpad/node_modules/ep_etherpad-lite'
- state: 'link'
-
- - name: 'install npm dependencies'
- npm:
- path: '/home/etherpad/etherpad/node_modules/ep_etherpad-lite'
- state: 'latest'
- production: true
- tags:
- - 'packages'
-
- - name: 'install ldap driver'
- npm:
- path: '/home/etherpad/etherpad'
- name: 'ep_ldapauth'
- state: 'latest'
- production: true
- tags:
- - 'packages'
-
- - name: 'install plugins'
- npm:
- path: '/home/etherpad/etherpad'
- name: '{{ item }}'
- state: 'latest'
- production: true
- loop:
- - 'ep_markdown'
-
- - name: 'configure etherpad'
- template:
- src: 'settings.json.j2'
- dest: '/home/etherpad/etherpad/settings.json'
- notify: 'restart etherpad-lite'
- become: true
- become_user: 'etherpad'
- become_method: 'su'
-
- - name: 'create etherpad service'
- copy:
- src: 'etherpad.service'
- dest: '/etc/systemd/system/etherpad-lite.service'
-
- - import_role: name='service'
- vars:
- service_name: 'etherpad-lite'
-
- - name: 'create nginx configuration'
- template:
- src: 'etherpad.conf.j2'
- dest: '/etc/nginx/locations/{{ etherpad_nginx_fqdn }}/etherpad.conf'
- vars:
- nginx_proxy_remote_host: 'http://127.0.0.1:9001'
- notify: 'reload nginx'
- ...
|