From 8c564b90447806b62c09a73ce43b743aefe9de75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Diemer?= <stephane.diemer@ubicast.eu> Date: Mon, 11 May 2020 16:18:15 +0200 Subject: [PATCH] Moved rocketchat role to another repository --- playbooks/rocketchat.yml | 10 -- roles/rocketchat/.editorconfig | 8 - roles/rocketchat/.gitignore | 1 - roles/rocketchat/README.md | 41 ----- roles/rocketchat/defaults/main.yml | 60 ------- roles/rocketchat/handlers/main.yml | 20 --- roles/rocketchat/meta/.galaxy_install_info | 2 - roles/rocketchat/meta/main.yml | 22 --- .../rocketchat/molecule/default/Dockerfile.j2 | 14 -- .../rocketchat/molecule/default/molecule.yml | 23 --- .../rocketchat/molecule/default/playbook.yml | 5 - .../molecule/default/tests/test_default.py | 95 ---------- roles/rocketchat/requirements.dev.in | 6 - roles/rocketchat/requirements.dev.txt | 109 ------------ roles/rocketchat/requirements.in | 1 - roles/rocketchat/requirements.txt | 15 -- roles/rocketchat/tasks/main.yml | 162 ------------------ .../templates/rocketchat.service.j2 | 15 -- 18 files changed, 609 deletions(-) delete mode 100755 playbooks/rocketchat.yml delete mode 100644 roles/rocketchat/.editorconfig delete mode 100644 roles/rocketchat/.gitignore delete mode 100644 roles/rocketchat/README.md delete mode 100644 roles/rocketchat/defaults/main.yml delete mode 100644 roles/rocketchat/handlers/main.yml delete mode 100644 roles/rocketchat/meta/.galaxy_install_info delete mode 100644 roles/rocketchat/meta/main.yml delete mode 100644 roles/rocketchat/molecule/default/Dockerfile.j2 delete mode 100644 roles/rocketchat/molecule/default/molecule.yml delete mode 100644 roles/rocketchat/molecule/default/playbook.yml delete mode 100644 roles/rocketchat/molecule/default/tests/test_default.py delete mode 100644 roles/rocketchat/requirements.dev.in delete mode 100644 roles/rocketchat/requirements.dev.txt delete mode 100644 roles/rocketchat/requirements.in delete mode 100644 roles/rocketchat/requirements.txt delete mode 100644 roles/rocketchat/tasks/main.yml delete mode 100644 roles/rocketchat/templates/rocketchat.service.j2 diff --git a/playbooks/rocketchat.yml b/playbooks/rocketchat.yml deleted file mode 100755 index 1853228c..00000000 --- a/playbooks/rocketchat.yml +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env ansible-playbook - ---- - -- hosts: chat - - roles: - - rocketchat - -... diff --git a/roles/rocketchat/.editorconfig b/roles/rocketchat/.editorconfig deleted file mode 100644 index 3274ec36..00000000 --- a/roles/rocketchat/.editorconfig +++ /dev/null @@ -1,8 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 2 -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true \ No newline at end of file diff --git a/roles/rocketchat/.gitignore b/roles/rocketchat/.gitignore deleted file mode 100644 index bee8a64b..00000000 --- a/roles/rocketchat/.gitignore +++ /dev/null @@ -1 +0,0 @@ -__pycache__ diff --git a/roles/rocketchat/README.md b/roles/rocketchat/README.md deleted file mode 100644 index 91b25ee4..00000000 --- a/roles/rocketchat/README.md +++ /dev/null @@ -1,41 +0,0 @@ -Rocket.Chat -=========== - -Install and update Rocket.Chat (manual installation). - -Requirements ------------- - -None. - -Role Variables --------------- - -See `defaults/main.yml`. - -Dependencies ------------- - -None. - -Example Playbook ----------------- - -``` -- hosts: rocketchat_server - roles: - - role: ubicast.rocketchat - rc_root_url: https://chat.example.net - rc_version: 1.3.0 - rc_mail_url: mail.example.net:25 -``` - -License -------- - -BSD - -Author Information ------------------- - -@nikaro from @UbicastTeam diff --git a/roles/rocketchat/defaults/main.yml b/roles/rocketchat/defaults/main.yml deleted file mode 100644 index e770b5f7..00000000 --- a/roles/rocketchat/defaults/main.yml +++ /dev/null @@ -1,60 +0,0 @@ ---- - -# package needed by ansible to run the role -rc_apt_packages_requirements: - - apt-transport-https - - apt-utils - - curl - - gnupg2 - -# mongodb repo -rc_mongo_repo_key_url: https://www.mongodb.org/static/pgp/server-4.0.asc -rc_mongo_repo: deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main -rc_mongo_repo_file: mongodb-org-4.0 - -# nodejs repo -rc_node_repo_key_url: https://deb.nodesource.com/gpgkey/nodesource.gpg.key -rc_node_repo: deb https://deb.nodesource.com/node_8.x stretch main -rc_node_repo_file: nodesource - -# apt package requirements -rc_apt_packages: - - build-essential - - git - - graphicsmagick - - mongodb-org - - nodejs - -# global npm package requirements -rc_npm_packages: - - inherits - - n - -# nodejs version -rc_node_version: 12.14.0 - -# version & archive url -rc_version: 3.1.1 -rc_url: https://releases.rocket.chat/{{ rc_version }}/download - -# where to install -rc_directory: /usr/local/rocketchat - -# user & group -rc_user: rocketchat -rc_group: rocketchat - -# mongodb settings -rc_mongo_url: mongodb://localhost:27017/rocketchat?replicaSet=rs01 -rc_mongo_oplog_url: mongodb://localhost:27017/local?replicaSet=rs01 - -# url by which it is accessible -rc_root_url: http://localhost:3000 - -# listen on port -rc_port: 3000 - -# email server:port to send notifications -rc_mail_url: localhost:25 - -... diff --git a/roles/rocketchat/handlers/main.yml b/roles/rocketchat/handlers/main.yml deleted file mode 100644 index f8018206..00000000 --- a/roles/rocketchat/handlers/main.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- - -- name: reload systemd - systemd: - daemon_reload: true - -- name: restart mongodb - systemd: - name: mongod - state: restarted - -- name: initialize mongodb - command: /usr/bin/mongo --eval "printjson(rs.initiate())" - -- name: restart rocketchat - systemd: - name: rocketchat - state: restarted - -... diff --git a/roles/rocketchat/meta/.galaxy_install_info b/roles/rocketchat/meta/.galaxy_install_info deleted file mode 100644 index f8a7385f..00000000 --- a/roles/rocketchat/meta/.galaxy_install_info +++ /dev/null @@ -1,2 +0,0 @@ -install_date: Thu Aug 8 13:28:09 2019 -version: 1.0.0 diff --git a/roles/rocketchat/meta/main.yml b/roles/rocketchat/meta/main.yml deleted file mode 100644 index c027d842..00000000 --- a/roles/rocketchat/meta/main.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- - -galaxy_info: - author: Nicolas Karolak - description: Install and update Rocket.Chat (manual installation) - company: UbiCast - - license: BSD - - min_ansible_version: 2.4 - - platforms: - - name: Debian - versions: - - 9 - - galaxy_tags: - - system - -dependencies: [] - -... diff --git a/roles/rocketchat/molecule/default/Dockerfile.j2 b/roles/rocketchat/molecule/default/Dockerfile.j2 deleted file mode 100644 index e6aa95d3..00000000 --- a/roles/rocketchat/molecule/default/Dockerfile.j2 +++ /dev/null @@ -1,14 +0,0 @@ -# Molecule managed - -{% if item.registry is defined %} -FROM {{ item.registry.url }}/{{ item.image }} -{% else %} -FROM {{ item.image }} -{% endif %} - -RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \ - elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python*-dnf bash && dnf clean all; \ - elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \ - elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml && zypper clean -a; \ - elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \ - elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi diff --git a/roles/rocketchat/molecule/default/molecule.yml b/roles/rocketchat/molecule/default/molecule.yml deleted file mode 100644 index 638e5ec4..00000000 --- a/roles/rocketchat/molecule/default/molecule.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -dependency: - name: galaxy -driver: - name: docker -lint: - name: yamllint -platforms: - - name: debian-stretch - image: jrei/systemd-debian:9 - command: /lib/systemd/systemd - capabilities: - - SYS_ADMIN - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro -provisioner: - name: ansible - lint: - name: ansible-lint -verifier: - name: testinfra - lint: - name: flake8 diff --git a/roles/rocketchat/molecule/default/playbook.yml b/roles/rocketchat/molecule/default/playbook.yml deleted file mode 100644 index b2c81c96..00000000 --- a/roles/rocketchat/molecule/default/playbook.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- name: Converge - hosts: all - roles: - - role: ansible-role-rocketchat diff --git a/roles/rocketchat/molecule/default/tests/test_default.py b/roles/rocketchat/molecule/default/tests/test_default.py deleted file mode 100644 index 0363a9b0..00000000 --- a/roles/rocketchat/molecule/default/tests/test_default.py +++ /dev/null @@ -1,95 +0,0 @@ -import os - -import testinfra.utils.ansible_runner - -testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - os.environ["MOLECULE_INVENTORY_FILE"] -).get_hosts("all") - - -def test_user(host): - u = host.user("rocketchat") - - assert u.exists - assert u.name == "rocketchat" - assert u.group == "rocketchat" - assert u.shell == "/usr/bin/nologin" - - -def test_mongodb_repo(host): - f = host.file("/etc/apt/sources.list.d/mongodb-org-4.0.list") - - assert f.exists - assert f.contains("repo.mongodb.org") - - -def test_mongodb_pkg(host): - p = host.package("mongodb-org") - - assert p.is_installed - - -def test_nodejs_repo(host): - f = host.file("/etc/apt/sources.list.d/nodesource.list") - - assert f.exists - assert f.contains("deb.nodesource.com") - - -def test_nodejs_pkg(host): - p = host.package("nodejs") - - assert p.is_installed - - -def test_mongod_conf(host): - f = host.file("/etc/mongod.conf") - - assert f.exists - assert f.contains("engine: mmapv1") - assert f.contains("replSetName: rs01") - - -def test_mongod_service(host): - s = host.service("mongod") - - assert s.is_running - - -def test_mongod_socket(host): - s = host.socket("tcp://127.0.0.1:27017") - - assert s.is_listening - - -def test_n_bin(host): - f = host.file("/usr/local/bin/n") - - assert f.exists - - -def test_rocketchat_directory(host): - f = host.file("/usr/local/rocketchat") - - assert f.exists - assert f.is_directory - assert f.user == "rocketchat" - assert f.group == "rocketchat" - - -def test_rocketchat_service_file(host): - f = host.file("/lib/systemd/system/rocketchat.service") - - assert f.exists - - -def test_rocketchat_service(host): - s = host.service("rocketchat") - - assert s.is_running - - -def test_rocketchat_socket(host): - s = host.socket("tcp://3000") - - assert s.is_listening diff --git a/roles/rocketchat/requirements.dev.in b/roles/rocketchat/requirements.dev.in deleted file mode 100644 index d792db47..00000000 --- a/roles/rocketchat/requirements.dev.in +++ /dev/null @@ -1,6 +0,0 @@ --r requirements.in -ansible-lint -molecule[docker,ec2] -pip-tools -pre-commit -yamllint diff --git a/roles/rocketchat/requirements.dev.txt b/roles/rocketchat/requirements.dev.txt deleted file mode 100644 index 40279f2b..00000000 --- a/roles/rocketchat/requirements.dev.txt +++ /dev/null @@ -1,109 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --output-file=requirements.dev.txt requirements.dev.in -# -ansible-lint==4.1.0 -ansible==2.8.2 -anyconfig==0.9.7 # via molecule -appdirs==1.4.3 # via black -argparse==1.4.0 # via aws-amicleaner -arrow==0.14.2 # via jinja2-time -asn1crypto==0.24.0 # via cryptography -aspy.yaml==1.3.0 # via pre-commit -astroid==2.2.5 # via pylint -atomicwrites==1.3.0 # via pytest -attrs==19.1.0 # via black, pytest -aws-amicleaner==0.2.2 -awscli==1.16.199 # via aws-amicleaner -backcall==0.1.0 # via ipython -binaryornot==0.4.4 # via cookiecutter -black==19.3b0 -blessings==1.7 # via aws-amicleaner -boto3==1.9.189 # via aws-amicleaner, molecule -boto==2.49.0 # via aws-amicleaner, molecule -botocore==1.12.189 # via awscli, boto3, s3transfer -cerberus==1.2 # via molecule -certifi==2019.6.16 # via requests -cffi==1.12.3 # via cryptography -cfgv==2.0.0 # via pre-commit -chardet==3.0.4 # via binaryornot, requests -click-completion==0.3.1 # via molecule -click==6.7 # via black, click-completion, cookiecutter, molecule, python-gilt -colorama==0.3.9 # via awscli, molecule, python-gilt -cookiecutter==1.6.0 # via molecule -cryptography==2.7 # via ansible -decorator==4.4.0 # via ipython, traitlets -docker==4.0.2 # via molecule -docutils==0.14 # via awscli, botocore -entrypoints==0.3 # via flake8 -fasteners==0.15 # via python-gilt -flake8==3.7.8 # via molecule -future==0.17.1 # via cookiecutter -git-url-parse==1.2.2 # via python-gilt -identify==1.4.5 # via pre-commit -idna==2.7 # via molecule, requests -importlib-metadata==0.18 # via pluggy, pre-commit, pytest -ipython-genutils==0.2.0 # via traitlets -ipython==7.6.1 -isort==4.3.21 # via pylint -jedi==0.14.1 # via ipython -jinja2-time==0.2.0 # via cookiecutter -jinja2==2.10 # via ansible, click-completion, cookiecutter, jinja2-time, molecule -jmespath==0.9.4 # via boto3, botocore -lazy-object-proxy==1.4.1 # via astroid -markupsafe==1.1.1 # via jinja2 -mccabe==0.6.1 # via flake8, pylint -molecule[docker,ec2]==2.20.2 -monotonic==1.5 # via fasteners -more-itertools==7.1.0 # via pytest -nodeenv==1.3.3 # via pre-commit -packaging==19.0 # via pytest -parso==0.5.1 # via jedi -pathspec==0.5.9 # via yamllint -pbr==5.1.1 # via git-url-parse, molecule, python-gilt -pexpect==4.6.0 # via ipython, molecule -pickleshare==0.7.5 # via ipython -pluggy==0.12.0 # via pytest -poyo==0.4.2 # via cookiecutter -pre-commit==1.17.0 -prettytable==0.7.2 # via aws-amicleaner -prompt-toolkit==2.0.9 # via ipython -psutil==5.4.6 # via molecule -ptyprocess==0.6.0 # via pexpect -py==1.8.0 # via pytest -pyasn1==0.4.5 # via rsa -pycodestyle==2.5.0 # via flake8 -pycparser==2.19 # via cffi -pyflakes==2.1.1 # via flake8 -pygments==2.4.2 # via ipython -pylint==2.3.1 -pyparsing==2.4.0 # via packaging -pytest==5.0.1 # via testinfra -python-dateutil==2.8.0 # via arrow, botocore -python-gilt==1.2.1 # via molecule -pyyaml==3.13 # via ansible, ansible-lint, aspy.yaml, awscli, molecule, pre-commit, python-gilt, yamllint -requests==2.22.0 # via cookiecutter, docker -rsa==3.4.2 # via awscli -ruamel.yaml==0.15.100 # via ansible-lint -s3transfer==0.2.1 # via awscli, boto3 -sh==1.12.14 # via molecule, python-gilt -six==1.11.0 # via ansible-lint, astroid, blessings, cfgv, click-completion, cryptography, docker, fasteners, molecule, packaging, pre-commit, prompt-toolkit, python-dateutil, testinfra, traitlets, websocket-client -tabulate==0.8.2 # via molecule -testinfra==3.0.5 # via molecule -toml==0.10.0 # via black, pre-commit -traitlets==4.3.2 # via ipython -tree-format==0.1.2 # via molecule -typed-ast==1.4.0 # via astroid -urllib3==1.25.3 # via botocore, requests -virtualenv==16.6.2 # via pre-commit -wcwidth==0.1.7 # via prompt-toolkit, pytest -websocket-client==0.56.0 # via docker -whichcraft==0.6.0 # via cookiecutter -wrapt==1.11.2 # via astroid -yamllint==1.16.0 -zipp==0.5.2 # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools==41.0.1 # via ipython diff --git a/roles/rocketchat/requirements.in b/roles/rocketchat/requirements.in deleted file mode 100644 index 5bc8cb22..00000000 --- a/roles/rocketchat/requirements.in +++ /dev/null @@ -1 +0,0 @@ -ansible ~= 2.8.0 diff --git a/roles/rocketchat/requirements.txt b/roles/rocketchat/requirements.txt deleted file mode 100644 index f10e7ead..00000000 --- a/roles/rocketchat/requirements.txt +++ /dev/null @@ -1,15 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --output-file=requirements.txt requirements.in -# -ansible==2.8.2 -asn1crypto==0.24.0 # via cryptography -cffi==1.12.3 # via cryptography -cryptography==2.7 # via ansible -jinja2==2.10.1 # via ansible -markupsafe==1.1.1 # via jinja2 -pycparser==2.19 # via cffi -pyyaml==5.1.1 # via ansible -six==1.12.0 # via cryptography diff --git a/roles/rocketchat/tasks/main.yml b/roles/rocketchat/tasks/main.yml deleted file mode 100644 index 0002bf8b..00000000 --- a/roles/rocketchat/tasks/main.yml +++ /dev/null @@ -1,162 +0,0 @@ ---- - -- name: add role requirement - apt: - force_apt_get: true - name: "{{ rc_apt_packages_requirements }}" - update_cache: true - cache_valid_time: 3600 - state: present - -- name: add group - group: - name: "{{ rc_group }}" - system: true - state: present - -- name: add user - user: - name: "{{ rc_user }}" - group: "{{ rc_group }}" - home: /var/run/{{ rc_user }} - shell: /usr/bin/nologin - system: true - state: present - -- name: add mongodb repository key - apt_key: - url: "{{ rc_mongo_repo_key_url }}" - state: present - -- name: add mongodb repository - apt_repository: - repo: "{{ rc_mongo_repo }}" - filename: "{{ rc_mongo_repo_file }}" - state: present - -- name: add nodesource repository key - apt_key: - url: "{{ rc_node_repo_key_url }}" - state: present - -- name: add nodesource repository - apt_repository: - repo: "{{ rc_node_repo }}" - filename: "{{ rc_node_repo_file }}" - state: present - -- name: install system requirements - apt: - force_apt_get: true - name: "{{ rc_apt_packages }}" - update_cache: true - cache_valid_time: 3600 - state: present - -- name: set mongodb engine - notify: restart mongodb - lineinfile: - path: /etc/mongod.conf - regexp: '^#? engine:' - line: ' engine: mmapv1' - -- name: set mongodb replset name - notify: - - restart mongodb - - initialize mongodb - blockinfile: - path: /etc/mongod.conf - block: | - replication: - replSetName: rs01 - -- name: install global npm requirements - changed_when: false # npm module is not idempotent - loop: "{{ rc_npm_packages }}" - npm: - name: "{{ item }}" - global: true - state: present - -- name: fix nodejs version - command: n {{ rc_node_version }} - args: - creates: /usr/local/n/versions/node/{{ rc_node_version }} - -- name: download archive - register: rc_dl_archive - get_url: - url: "{{ rc_url }}" - dest: /var/cache/rocketchat_{{ rc_version }}.tgz - -- name: create temp extract directory - when: rc_dl_archive is changed - file: - path: /var/cache/rc_{{ rc_version }} - state: directory - -- name: extract archive content - when: rc_dl_archive is changed - unarchive: - src: /var/cache/rocketchat_{{ rc_version }}.tgz - dest: /var/cache/rc_{{ rc_version }} - remote_src: true - -- name: install npm requirements - when: rc_dl_archive is changed - npm: - path: /var/cache/rc_{{ rc_version }}/bundle/programs/server - state: present - -- name: check if service exists - register: rc_service - stat: - path: /lib/systemd/system/rocketchat.service - -- name: stop rocketchat - when: - - rc_service.stat.exists - - rc_dl_archive is changed - systemd: - name: rocketchat - state: stopped - -- name: remove current application files - when: rc_dl_archive is changed - file: - path: "{{ rc_directory }}" - state: absent - -- name: copy application files - when: rc_dl_archive is changed - notify: restart rocketchat - copy: - remote_src: true - src: /var/cache/rc_{{ rc_version }}/bundle/ - dest: "{{ rc_directory }}" - owner: "{{ rc_user }}" - group: "{{ rc_group }}" - -- name: remove cache files - when: rc_dl_archive is changed - file: - path: /var/cache/rc_{{ rc_version }} - state: absent - -- name: deploy service file - notify: - - reload systemd - - restart rocketchat - template: - src: rocketchat.service.j2 - dest: /lib/systemd/system/rocketchat.service - -- meta: flush_handlers - -- name: enable rocketchat service - systemd: - name: rocketchat - enabled: true - state: started - -... diff --git a/roles/rocketchat/templates/rocketchat.service.j2 b/roles/rocketchat/templates/rocketchat.service.j2 deleted file mode 100644 index 850201db..00000000 --- a/roles/rocketchat/templates/rocketchat.service.j2 +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=The Rocket.Chat server -After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target - -[Service] -ExecStartPre=/bin/sleep 5 -ExecStart=/usr/local/bin/node {{ rc_directory }}/main.js -StandardOutput=syslog -StandardError=syslog -SyslogIdentifier=rocketchat -User={{ rc_user }} -Environment=MONGO_URL={{ rc_mongo_url }} MONGO_OPLOG_URL={{ rc_mongo_oplog_url }} ROOT_URL={{ rc_root_url }} PORT={{ rc_port }} MAIL_URL={{ rc_mail_url }} - -[Install] -WantedBy=multi-user.target -- GitLab