lad
Version:
Lad is the best Node.js framework. Made by a former Express TC and Koa team member.
71 lines (70 loc) • 2.22 kB
YAML
- import_playbook: security.yml hostlist=mongo
- hosts: mongo
become: true
become_user: root
vars:
# https://github.com/UnderGreen/ansible-role-mongodb
mongodb_version: "4.2"
mongodb_pymongo_from_pip: true
mongodb_daemon_name: mongod
mongodb_net_port: "{{ lookup('env', 'MONGO_PORT') }}"
mongodb_security_authorization: 'enabled'
mongodb_user_admin_name: admin_user
mongodb_user_admin_password: "{{ lookup('env', 'MONGO_PASS') }}"
mongodb_root_admin_name: "{{ lookup('env', 'MONGO_USER') }}"
mongodb_root_admin_password: "{{ lookup('env', 'MONGO_PASS') }}"
mongodb_root_backup_name: admin_backup
mongodb_root_backup_password: "{{ lookup('env', 'MONGO_PASS') }}"
mongodb_net_bindip: "127.0.0.1,{{ lookup('env', 'MONGO_HOST') }}"
mongodb_security_javascript_enabled: true
mongodb_manage_service: true
# this was already defined in the mongo role
# https://github.com/UnderGreen/ansible-role-mongodb/blob/master/handlers/main.yml
handlers:
- name: mongodb restart
service:
name: "{{ mongodb_daemon_name }}"
state: restarted
when: mongodb_manage_service | bool
roles:
# https://github.com/holms/ansible-fqdn
- role: fqdn
# https://github.com/UnderGreen/ansible-role-mongodb
- role: mongo
tasks:
# security
- name: increase nproc and nofile for mongodb
copy:
src: '{{ playbook_dir }}/templates/security-limits.d-mongod.conf'
dest: /etc/security/limits.d/mongod.conf
owner: root
group: root
mode: 0644
notify: mongodb restart
# ufw
- name: enable ufw
ufw:
state: enabled
policy: deny
direction: incoming
- name: limit ufw ssh
ufw:
rule: limit
port: 22
proto: tcp
- name: allow ssh
ufw:
rule: allow
port: 22
proto: tcp
- name: allow server access
ufw:
rule: allow
port: "{{ lookup('env', 'MONGO_PORT') }}"
src: "{{ hostvars[item].ansible_host }}"
proto: tcp
with_items: "{{ groups['web'] + groups['api'] + groups['bree'] }}"
- name: reload ufw
ufw:
state: reloaded