diff --git a/ansible/main.yml b/ansible/main.yml index e62b3c5..01683f7 100644 --- a/ansible/main.yml +++ b/ansible/main.yml @@ -9,6 +9,7 @@ - docker - lsiousers - lsiosite + - lsiochat #- ssh #- docker #- lsiosite diff --git a/ansible/roles/lsiochat/defaults/main.yml b/ansible/roles/lsiochat/defaults/main.yml new file mode 100644 index 0000000..9c06f35 --- /dev/null +++ b/ansible/roles/lsiochat/defaults/main.yml @@ -0,0 +1,4 @@ +--- +rocketchat: false +mattermost: true +discourse: false diff --git a/ansible/roles/lsiochat/files/opt/mattermost/docker-compose.yml b/ansible/roles/lsiochat/files/opt/mattermost/docker-compose.yml new file mode 100644 index 0000000..fb6528b --- /dev/null +++ b/ansible/roles/lsiochat/files/opt/mattermost/docker-compose.yml @@ -0,0 +1,39 @@ +version: "2" +services: + db: + image: mattermost/mattermost-prod-db + restart: always + volumes: + - /opt/mattermost/db/postgresql/data:/var/lib/postgresql/data + - /etc/localtime:/etc/localtime:ro + # uncomment the following to enable backup + environment: + - MM_USERNAME=mmuser + - MM_PASSWORD=mmuser_password + - MM_DBNAME=mattermost + # - AWS_ACCESS_KEY_ID=XXXX + # - AWS_SECRET_ACCESS_KEY=XXXX + # - WALE_S3_PREFIX=s3://BUCKET_NAME/PATH + # - AWS_REGION=us-east-1 + + app: + image: mattermost/mattermost-prod-app + restart: always + volumes: + - /opt/mattermost/config:/mattermost/config:rw + - /opt/mattermost/data:/mattermost/data:rw + - /etc/localtime:/etc/localtime:ro + + web: + image: mattermost/mattermost-prod-web + ports: + - "8080:80" + - "8443:443" + restart: always + volumes: + # This directory must have cert files + - /opt/mattermost/web/cert:/cert:ro + - /etc/localtime:/etc/localtime:ro + environment: + - MATTERMOST_ENABLE_SSL=false + - PLATFORM_PORT_80_TCP_PORT=80 diff --git a/ansible/roles/lsiochat/tasks/main.yml b/ansible/roles/lsiochat/tasks/main.yml new file mode 100644 index 0000000..ea3ac7d --- /dev/null +++ b/ansible/roles/lsiochat/tasks/main.yml @@ -0,0 +1,15 @@ +--- +- name: install pre-reqs + include: pre-reqs.yml + +- name: setup rocketchat + include: rocketchat.yml + when: rocketchat + +- name: setup mattermost + include: mattermost.yml + when: mattermost + +# - name: setup discourse +# include: discourse.yml +# when: discourse diff --git a/ansible/roles/lsiochat/tasks/mattermost.yml b/ansible/roles/lsiochat/tasks/mattermost.yml new file mode 100644 index 0000000..842a1f7 --- /dev/null +++ b/ansible/roles/lsiochat/tasks/mattermost.yml @@ -0,0 +1,25 @@ +- name: ensure volume dir has correct permissions + file: + path: /opt/mattermost/{{ item }} + state: directory + recurse: yes + owner: lsio + group: root + mode: 0755 + with_items: + - web + - config + - data + - db + - app + +- name: copy mattermost docker-compose file into place + copy: + src: opt/mattermost/docker-compose.yml + dest: /opt/mattermost/docker-compose.yml + owner: lsio + group: root + mode: 0644 + +- name: docker-compose up for mattermost + command: docker-compose -f /opt/mattermost/docker-compose.yml up -d diff --git a/ansible/roles/lsiochat/tasks/pre-reqs.yml b/ansible/roles/lsiochat/tasks/pre-reqs.yml new file mode 100644 index 0000000..07c0f41 --- /dev/null +++ b/ansible/roles/lsiochat/tasks/pre-reqs.yml @@ -0,0 +1,23 @@ +--- +- name: install packages + apt: pkg={{ item }} state=present + with_items: + - python3 + - python-dev + - python-pip + - python-setuptools + +- name: Make sure pip upgraded (fixes docker-py errors) + command: easy_install -U pip + +- name: install docker-py + pip: + name: docker-py + state: present + extra_args: -U + +- name: install docker-compose + pip: + name: docker-compose + state: present + extra_args: -U diff --git a/ansible/roles/lsiochat/tasks/rocketchat.yml b/ansible/roles/lsiochat/tasks/rocketchat.yml new file mode 100644 index 0000000..f88a9a6 --- /dev/null +++ b/ansible/roles/lsiochat/tasks/rocketchat.yml @@ -0,0 +1,32 @@ +- name: ensure volume dir has correct permissions + file: + path: /opt/{{ item }} + state: directory + recurse: yes + owner: lsio + group: root + mode: 0755 + with_items: + - rocketchat/mongo + +- name: setup mongo instance for rocketchat + docker_container: + name: lsio_rocketchat_mongodb + image: mongo + state: started + restart_policy: always + volumes: + - /opt/rocketchat/mongo:/data/db + +- name: setup lsio rocketchat docker container + docker_container: + name: lsio_rocketchat + image: rocket.chat + state: started + restart_policy: always + ports: + - "3000:3000" + links: + - lsio_rocketchat_mongodb:db + env: + ROOT_URL: http://chat.linuxserver.io