From e8649a2b2f4fce0193f5583476fd0378d6ba1a51 Mon Sep 17 00:00:00 2001 From: vincent Date: Thu, 25 Apr 2019 21:59:52 +0200 Subject: [PATCH] add chainetv role --- defaults/main.yml | 2 + handlers/main.yml | 2 + meta/main.yml | 60 ++++++++++++++++++++++++++ tasks/main.yml | 12 ++++++ templates/nginx/chainetv.default.j2 | 10 +++++ templates/systemd/gunicorn.service.j2 | 22 ++++++++++ templates/systemd/gunicorn.socket.j2 | 0 templates/tmpfiles.d/gunicornn.conf.j2 | 1 + vars/main.yml | 2 + 9 files changed, 111 insertions(+) create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 templates/nginx/chainetv.default.j2 create mode 100644 templates/systemd/gunicorn.service.j2 create mode 100644 templates/systemd/gunicorn.socket.j2 create mode 100644 templates/tmpfiles.d/gunicornn.conf.j2 create mode 100644 vars/main.yml diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..82faab1 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for chainetv \ No newline at end of file diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..573c502 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for chainetv \ No newline at end of file diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..5d50bf4 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,60 @@ +galaxy_info: + author: your name + description: your description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Some suggested licenses: + # - BSD (default) + # - MIT + # - GPLv2 + # - GPLv3 + # - Apache + # - CC-BY + license: license (GPLv2, CC-BY, etc) + + min_ansible_version: 2.4 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # Optionally specify the branch Galaxy will use when accessing the GitHub + # repo for this role. During role install, if no tags are available, + # Galaxy will use this branch. During import Galaxy will access files on + # this branch. If Travis integration is configured, only notifications for this + # branch will be accepted. Otherwise, in all cases, the repo's default branch + # (usually master) will be used. + #github_branch: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..0f49587 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,12 @@ +--- +# tasks file for chainetv +- name: ensure that gunicorn is install + pacman: + state: present # not required. choices: absent;latest;present. Desired state of the package. + upgrade: false # not required. Whether or not to upgrade whole system. + force: false # not required. When removing package - force remove package, without any checks. When update_cache - force redownload repo databases. + name: gunicorn # not required. Name or list of names of the packages to install, upgrade, or remove. + update_cache: false # not required. Whether or not to refresh the master package lists. This can be run as part of a package installation or as a separate step. + recurse: false # not required. When removing a package, also remove its dependencies, provided that they are not required by other packages and were not explicitly installed by a user. + become: yes + diff --git a/templates/nginx/chainetv.default.j2 b/templates/nginx/chainetv.default.j2 new file mode 100644 index 0000000..8fde4d2 --- /dev/null +++ b/templates/nginx/chainetv.default.j2 @@ -0,0 +1,10 @@ + location /chainetv { + alias /srv/chainetv_web/dist; + } + location /chainetv/api { + proxy_pass http://unix:/run/gunicorn/socket; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Script-Name /chainetv; + } \ No newline at end of file diff --git a/templates/systemd/gunicorn.service.j2 b/templates/systemd/gunicorn.service.j2 new file mode 100644 index 0000000..cceda93 --- /dev/null +++ b/templates/systemd/gunicorn.service.j2 @@ -0,0 +1,22 @@ +[Unit] +Description=gunicorn daemon +Requires=gunicorn.socket +After=network.target + +[Service] +PIDFile=/run/gunicorn/pid +User=root +Group=root +RuntimeDirectory=gunicorn +WorkingDirectory=/srv/chainetv_web/backend +ExecStart=/usr/bin/gunicorn --pid /run/gunicorn/pid \ + --bind unix:/run/gunicorn/socket run:app +ExecReload=/bin/kill -s HUP $MAINPID +ExecStop=/bin/kill -s TERM $MAINPID +PrivateTmp=true + +[Install] +WantedBy=multi-user.target +[Unit] +Description=gunicorn socket + diff --git a/templates/systemd/gunicorn.socket.j2 b/templates/systemd/gunicorn.socket.j2 new file mode 100644 index 0000000..e69de29 diff --git a/templates/tmpfiles.d/gunicornn.conf.j2 b/templates/tmpfiles.d/gunicornn.conf.j2 new file mode 100644 index 0000000..9cdfd59 --- /dev/null +++ b/templates/tmpfiles.d/gunicornn.conf.j2 @@ -0,0 +1 @@ +d /run/gunicorn 0755 root roor - \ No newline at end of file diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..056f891 --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for chainetv \ No newline at end of file