From 083845cffc972a2becc9d225f209dc49fe132f27 Mon Sep 17 00:00:00 2001 From: Istemi Ekin Akkus Date: Fri, 3 Jul 2020 14:04:48 +0200 Subject: [PATCH 1/2] create ansible setting to start services at boot --- deploy/ansible/datalayer.yaml | 11 ++++++++++- deploy/ansible/elasticsearch.yaml | 17 +++++++++++++++-- deploy/ansible/fluentbit.yaml | 11 ++++++++++- deploy/ansible/frontend.yaml | 12 +++++++++++- deploy/ansible/riak.yaml | 20 +++++++++++++++++++- deploy/ansible/settings.json | 1 + 6 files changed, 66 insertions(+), 6 deletions(-) diff --git a/deploy/ansible/datalayer.yaml b/deploy/ansible/datalayer.yaml index 55efb72d..6d09b64f 100644 --- a/deploy/ansible/datalayer.yaml +++ b/deploy/ansible/datalayer.yaml @@ -89,12 +89,21 @@ [Install] WantedBy=multi-user.target - - name: systemd start datalayer service + - name: systemd install and enable datalayer service systemd: daemon_reload: yes name: "{{ service_name }}" enabled: true state: restarted + when: start_at_boot|bool + + - name: systemd install and disable datalayer service + systemd: + daemon_reload: yes + name: "{{ service_name }}" + enabled: false + state: stopped + when: not start_at_boot|bool - name: create start script copy: diff --git a/deploy/ansible/elasticsearch.yaml b/deploy/ansible/elasticsearch.yaml index 75d6a68d..fc9991b7 100644 --- a/deploy/ansible/elasticsearch.yaml +++ b/deploy/ansible/elasticsearch.yaml @@ -234,7 +234,7 @@ [Service] OOMScoreAdjust=-1000 LimitNOFILE=65536 - LimitMEMLOCK=unlimited + LimitMEMLOCK=infinity Type=simple User=elasticsearch Group=elasticsearch @@ -245,10 +245,14 @@ [Install] WantedBy=multi-user.target - - name: systemd start mfn-elasticsearch + # regardless of start_at_boot setting, we install the script and start it + # because we have to perform some operations + # if start_at_boot is set to false, we'll disable it afterwards + - name: systemd install and start mfn-elasticsearch service to perform initialization operations systemd: daemon_reload: yes name: "{{ es_server_service_name }}" + enabled: true state: restarted become: yes @@ -309,3 +313,12 @@ - debug: var: esconfig_command.stdout when: ansible_default_ipv4.address == es_master_ip + + - name: systemd install and disable mfn-elasticsearch service + systemd: + daemon_reload: yes + name: "{{ es_server_service_name }}" + enabled: false + state: stopped + become: yes + when: not start_at_boot|bool diff --git a/deploy/ansible/fluentbit.yaml b/deploy/ansible/fluentbit.yaml index 88e9d3c4..34fecfec 100644 --- a/deploy/ansible/fluentbit.yaml +++ b/deploy/ansible/fluentbit.yaml @@ -171,12 +171,21 @@ [Install] WantedBy=multi-user.target - - name: systemd start fluent-bit service + - name: systemd install and enable fluent-bit service systemd: daemon_reload: yes name: "{{ service_name }}" enabled: true state: restarted + when: start_at_boot|bool + + - name: systemd install and disable fluent-bit service + systemd: + daemon_reload: yes + name: "{{ service_name }}" + enabled: false + state: stopped + when: not start_at_boot|bool - name: create start script copy: diff --git a/deploy/ansible/frontend.yaml b/deploy/ansible/frontend.yaml index fdc9d52e..1fdf1d53 100644 --- a/deploy/ansible/frontend.yaml +++ b/deploy/ansible/frontend.yaml @@ -146,11 +146,21 @@ [Install] WantedBy=multi-user.target - - name: systemd start service mfn-frontend + - name: systemd install and enable service mfn-frontend systemd: daemon_reload: yes name: "{{ service_name }}" + enabled: true state: restarted + when: start_at_boot|bool + + - name: systemd install and disable service mfn-frontend + systemd: + daemon_reload: yes + name: "{{ service_name }}" + enabled: false + state: stopped + when: not start_at_bool|bool - name: create frontend systemctl start script copy: diff --git a/deploy/ansible/riak.yaml b/deploy/ansible/riak.yaml index cc776e45..df74b94b 100644 --- a/deploy/ansible/riak.yaml +++ b/deploy/ansible/riak.yaml @@ -302,10 +302,14 @@ [Install] WantedBy=multi-user.target - - name: systemd restart mfn-riak + # regardless of start_at_boot setting, we install the script and start it + # because we have to perform some operations + # if start_at_boot is set to false, we'll disable it afterwards + - name: systemd install and enable mfn-riak service to perform initialization operations systemd: daemon_reload: yes name: "{{ riak_server_service_name }}" + enabled: true state: restarted - name: create riak start script @@ -447,10 +451,24 @@ msg: - "{{ wait_result1.stderr_lines[-1] }}" - "{{ wait_result2.stderr_lines[-1] }}" + - hosts: riak + vars: + # riak service path on target machine + riak_server_service_name: mfn-riak + riak_server_service_path: "/lib/systemd/system/{{ riak_server_service_name }}.service" + tasks: - name: create ring shell: | /usr/sbin/riak-admin cluster plan /usr/sbin/riak-admin cluster commit when: hostvars[groups['riak'][0]].ansible_default_ipv4.address == ansible_default_ipv4.address + + - name: systemd install and disable mfn-riak service + systemd: + daemon_reload: yes + name: "{{ riak_server_service_name }}" + enabled: false + state: stopped + when: not start_at_boot|bool diff --git a/deploy/ansible/settings.json b/deploy/ansible/settings.json index 24328e51..462bff5b 100644 --- a/deploy/ansible/settings.json +++ b/deploy/ansible/settings.json @@ -1,5 +1,6 @@ { "mfn_server_installation_folder": "/opt/knix", + "start_at_boot": false, "riak_leveldb_maximum_memory": "4294967296", "nginx_http_listen_port": "80", "nginx_https_listen_port": "443", From 8d00eb17cb1c5a7235288a064be90479ad00eb1d Mon Sep 17 00:00:00 2001 From: Istemi Ekin Akkus Date: Fri, 3 Jul 2020 15:44:58 +0200 Subject: [PATCH 2/2] update ansible readme to describe the new setting --- deploy/ansible/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/deploy/ansible/README.md b/deploy/ansible/README.md index 4116e0ee..4057560e 100644 --- a/deploy/ansible/README.md +++ b/deploy/ansible/README.md @@ -114,6 +114,7 @@ To setup KNIX on localhost, or a single remote host, or a cluster of hosts 3. Update `settings.json` * `mfn_server_installation_folder`: folder where KNIX will be installed + * `start_at_boot`: whether KNIX services should be started at system start up * `riak_leveldb_maximum_memory`: total memory (in bytes) assigned to each Riak storage node's LevelDB backend * `nginx_http_listen_port`: http port the ngix server, serving the KNIX GUI, will listen on * `nginx_https_listen_port`: https port the ngix server, serving the KNIX GUI, will listen on