Add components to help keep certs up to date.
This commit is contained in:
		
							
								
								
									
										96
									
								
								tasks/server/software/onlyoffice.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								tasks/server/software/onlyoffice.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
			
		||||
---
 | 
			
		||||
# Create OnlyOffice server for use with Nextcloud.
 | 
			
		||||
 | 
			
		||||
## Pre-Reqs ##
 | 
			
		||||
 | 
			
		||||
- name: Server | OnlyOffice | Pre-Requirements | Install
 | 
			
		||||
  package: 
 | 
			
		||||
    name: 
 | 
			
		||||
      - gnupg
 | 
			
		||||
      - python3-certbot-nginx
 | 
			
		||||
    state: present
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Install ##
 | 
			
		||||
# https://helpcenter.onlyoffice.com/installation/docs-community-install-ubuntu.aspx
 | 
			
		||||
 | 
			
		||||
# Dependencies #
 | 
			
		||||
 | 
			
		||||
- name: Server | OnlyOffice | Postgres | Install
 | 
			
		||||
  package: 
 | 
			
		||||
    name: postgresql
 | 
			
		||||
    state: present
 | 
			
		||||
 | 
			
		||||
- name: Server | OnlyOffice | Postgres | Configure
 | 
			
		||||
  shell: '{{ item }}'
 | 
			
		||||
  loop:
 | 
			
		||||
    - psql -c "CREATE DATABASE onlyoffice;"
 | 
			
		||||
    - psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"
 | 
			
		||||
    - psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"
 | 
			
		||||
  become_user: postgres
 | 
			
		||||
  ignore_errors: yes
 | 
			
		||||
 | 
			
		||||
- name: Server | OnlyOffice | RabbitMQ | Install
 | 
			
		||||
  package: 
 | 
			
		||||
    name: rabbitmq-server
 | 
			
		||||
    state: present
 | 
			
		||||
 | 
			
		||||
# Actual Program #
 | 
			
		||||
 | 
			
		||||
- name: Server | OnlyOffice | Docs | Add Repo
 | 
			
		||||
  shell: '{{ item }}'
 | 
			
		||||
  loop:
 | 
			
		||||
    - apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
 | 
			
		||||
    - echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | tee /etc/apt/sources.list.d/onlyoffice.list
 | 
			
		||||
    - apt update
 | 
			
		||||
 | 
			
		||||
- name: Server | OnlyOffice | Docs | Install
 | 
			
		||||
  package: 
 | 
			
		||||
    name: 
 | 
			
		||||
      - ttf-mscorefonts-installer
 | 
			
		||||
      - onlyoffice-documentserver
 | 
			
		||||
    state: present
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## HTTPS ##
 | 
			
		||||
# https://helpcenter.only{{ ansible_histname }}.com/installation/docs-community-https-linux.aspx
 | 
			
		||||
 | 
			
		||||
# Certs #
 | 
			
		||||
 | 
			
		||||
- name: Server | OnlyOffice | HTTPS | Check For Cert
 | 
			
		||||
  shell: "ls -l /etc/letsencrypt/live/{{ ansible_hostname }}.{{ domain }}/{fullchain,privkey}.pem"
 | 
			
		||||
  register: onlyoffice_cert
 | 
			
		||||
 | 
			
		||||
- name: Server | OnlyOffice | HTTPS | Create Cert
 | 
			
		||||
  shell: "certbot --nginx -d {{ ansible_hostname }}.{{ domain }}"
 | 
			
		||||
  when: onlyoffice_cert.failed
 | 
			
		||||
 | 
			
		||||
# Config #
 | 
			
		||||
 | 
			
		||||
#- name: Server | OnlyOffice | HTTPS | Check For Config
 | 
			
		||||
#  shell: ls -l /etc/onlyoffice/documentserver/nginx/ds.conf
 | 
			
		||||
#  register: onlyoffice_cert
 | 
			
		||||
#
 | 
			
		||||
#- name: Server | OnlyOffice | HTTPS | Create Config
 | 
			
		||||
#  shell: cp -f /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds.conf
 | 
			
		||||
#  when: onlyoffice_cert.failed
 | 
			
		||||
#
 | 
			
		||||
#- name: Server | OnlyOffice | HTTPS | Modify Config
 | 
			
		||||
#  lineinfile:
 | 
			
		||||
#    path: /etc/onlyoffice/documentserver/nginx/ds.conf
 | 
			
		||||
#    regexp: '{{ item.regexp }}'
 | 
			
		||||
#    line: '{{ item.line }}; # MANAGED BY ANSIBLE'
 | 
			
		||||
#    state: present
 | 
			
		||||
#    create: no
 | 
			
		||||
#    backup: yes
 | 
			
		||||
#  loop:
 | 
			
		||||
#    - { "regexp": "ssl_certificate ", "line": "  ssl_certificate /etc/letsencrypt/live/{{ ansible_hostname }}.{{ domain }}/fullchain.pem" }
 | 
			
		||||
#    - { "regexp": "ssl_certificate_key ", "line": "  ssl_certificate_key /etc/letsencrypt/live/{{ ansible_hostname }}.{{ domain }}/privkey.pem" }
 | 
			
		||||
 | 
			
		||||
# Services #
 | 
			
		||||
 | 
			
		||||
- name: Server | OnlyOffice | HTTPS | Reload nginx
 | 
			
		||||
  service:
 | 
			
		||||
    name: nginx
 | 
			
		||||
    status: reloaded
 | 
			
		||||
		Reference in New Issue
	
	Block a user