Merge pull request #16 from paulfantom/systemd_service
Update systemd service file
This commit is contained in:
commit
a9fb91688f
|
@ -0,0 +1,50 @@
|
||||||
|
---
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
lint:
|
||||||
|
name: yamllint
|
||||||
|
|
||||||
|
platforms:
|
||||||
|
- name: minio-centos-7
|
||||||
|
image: paulfantom/centos-molecule:7
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
- name: minio-fedora-27
|
||||||
|
image: paulfantom/fedora-molecule:27
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
- name: minio-debian-9
|
||||||
|
image: paulfantom/debian-molecule:9
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
- name: minio-ubuntu-18.04
|
||||||
|
image: paulfantom/ubuntu-molecule:18.04
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
- name: minio-ubuntu-16.04
|
||||||
|
image: paulfantom/ubuntu-molecule:16.04
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
lint:
|
||||||
|
name: ansible-lint
|
||||||
|
playbooks:
|
||||||
|
create: ../default/create.yml
|
||||||
|
prepare: ../default/prepare.yml
|
||||||
|
converge: playbook.yml
|
||||||
|
destroy: ../default/destroy.yml
|
||||||
|
|
||||||
|
scenario:
|
||||||
|
name: alternative
|
||||||
|
verifier:
|
||||||
|
name: testinfra
|
||||||
|
lint:
|
||||||
|
name: flake8
|
||||||
|
enabled: true
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- hosts: all
|
||||||
|
any_errors_fatal: true
|
||||||
|
roles:
|
||||||
|
- ansible-minio
|
||||||
|
vars:
|
||||||
|
minio_server_envfile: "/opt/minio"
|
||||||
|
minio_server_addr: ":80"
|
||||||
|
minio_server_datadirs:
|
||||||
|
- "/srv/data1"
|
||||||
|
- "/srv/data2"
|
||||||
|
- "/srv/data3"
|
||||||
|
- "/srv/data4"
|
|
@ -0,0 +1,49 @@
|
||||||
|
import yaml
|
||||||
|
import pytest
|
||||||
|
import testinfra.utils.ansible_runner
|
||||||
|
|
||||||
|
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
||||||
|
'.molecule/ansible_inventory').get_hosts('all')
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture()
|
||||||
|
def AnsibleDefaults(Ansible):
|
||||||
|
with open("./defaults/main.yml", 'r') as stream:
|
||||||
|
return yaml.load(stream)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("dirs", [
|
||||||
|
"/minio-test"
|
||||||
|
])
|
||||||
|
def test_directories(host, dirs):
|
||||||
|
d = host.file(dirs)
|
||||||
|
assert d.is_directory
|
||||||
|
assert d.exists
|
||||||
|
assert d.user == AnsibleDefaults['minio_user']
|
||||||
|
assert d.group == AnsibleDefaults['minio_group']
|
||||||
|
assert oct(d.mode) == '0750'
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('minio_bin_var', [
|
||||||
|
'minio_server_bin',
|
||||||
|
'minio_client_bin',
|
||||||
|
])
|
||||||
|
def test_minio_installed(File, AnsibleDefaults, minio_bin_var):
|
||||||
|
|
||||||
|
f = File(AnsibleDefaults[minio_bin_var])
|
||||||
|
assert f.exists
|
||||||
|
assert f.user == AnsibleDefaults['minio_user']
|
||||||
|
assert f.group == AnsibleDefaults['minio_group']
|
||||||
|
assert oct(f.mode) == '0755'
|
||||||
|
|
||||||
|
|
||||||
|
def test_minio_service(Service):
|
||||||
|
|
||||||
|
s = Service('minio')
|
||||||
|
assert s.is_running
|
||||||
|
assert s.is_enabled
|
||||||
|
|
||||||
|
|
||||||
|
def test_capabilities(host):
|
||||||
|
service_file = host.file("/etc/systemd/system/minio.service")
|
||||||
|
assert service_file.contains("AmbientCapabilities=CAP_NET_BIND_SERVICE")
|
|
@ -9,6 +9,8 @@
|
||||||
# Description: Distributed object storage server built for cloud applications and devops.
|
# Description: Distributed object storage server built for cloud applications and devops.
|
||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
# Do NOT "set -e"
|
# Do NOT "set -e"
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Minio
|
Description=Minio
|
||||||
Documentation=https://docs.minio.io
|
Documentation=https://docs.minio.io
|
||||||
|
@ -15,8 +17,12 @@ PermissionsStartOnly=true
|
||||||
|
|
||||||
EnvironmentFile={{ minio_server_envfile }}
|
EnvironmentFile={{ minio_server_envfile }}
|
||||||
ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in {{ minio_server_envfile }}\""
|
ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in {{ minio_server_envfile }}\""
|
||||||
|
|
||||||
ExecStart={{ minio_server_bin }} server $MINIO_OPTS $MINIO_VOLUMES
|
ExecStart={{ minio_server_bin }} server $MINIO_OPTS $MINIO_VOLUMES
|
||||||
|
|
||||||
|
# Let systemd restart this service only if it has ended with the clean exit code or signal.
|
||||||
|
Restart=on-success
|
||||||
|
|
||||||
StandardOutput=journal
|
StandardOutput=journal
|
||||||
StandardError=inherit
|
StandardError=inherit
|
||||||
|
|
||||||
|
@ -33,5 +39,9 @@ SendSIGKILL=no
|
||||||
|
|
||||||
SuccessExitStatus=0
|
SuccessExitStatus=0
|
||||||
|
|
||||||
|
{% if (minio_server_addr.split(':')[-1] | int) < 1024 %}
|
||||||
|
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
Loading…
Reference in New Issue