mirror of
https://github.com/atosatto/ansible-minio.git
synced 2025-01-22 21:01:21 +01:00
Add support for additional ENV variables injection. Overall tasks clean-up.
This commit is contained in:
parent
36eaf8b1c2
commit
d5da548c82
@ -15,6 +15,7 @@ env:
|
|||||||
- ANSIBLE=2.3
|
- ANSIBLE=2.3
|
||||||
- ANSIBLE=2.4
|
- ANSIBLE=2.4
|
||||||
- ANSIBLE=2.5
|
- ANSIBLE=2.5
|
||||||
|
- ANSIBLE=2.6
|
||||||
|
|
||||||
# Install tox
|
# Install tox
|
||||||
install:
|
install:
|
||||||
|
13
README.md
13
README.md
@ -46,17 +46,17 @@ minio_server_addr: ":9091"
|
|||||||
The Minio server listen address.
|
The Minio server listen address.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
minio_server_datadirs: [ ]
|
minio_server_datadirs:
|
||||||
|
- /var/lib/minio
|
||||||
```
|
```
|
||||||
|
|
||||||
Directories of the folder containing the minio server data
|
Directories of the folder containing the minio server data
|
||||||
**NB**: This variable must always be set by the role, otherwise the minio service will not start.
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
minio_server_make_datadirs: true
|
minio_server_make_datadirs: true
|
||||||
```
|
```
|
||||||
|
|
||||||
Create directories from `minio_server_datadirs`
|
Create directories from `minio_server_datadirs`
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
minio_server_cluster_nodes: [ ]
|
minio_server_cluster_nodes: [ ]
|
||||||
@ -79,6 +79,13 @@ minio_server_cluster_nodes:
|
|||||||
- ...
|
- ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
minio_server_env_extra: ""
|
||||||
|
```
|
||||||
|
|
||||||
|
Additional environment variables to be set in Minio server environment
|
||||||
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
minio_server_opts: ""
|
minio_server_opts: ""
|
||||||
```
|
```
|
||||||
|
@ -4,30 +4,34 @@
|
|||||||
minio_server_bin: /usr/local/bin/minio
|
minio_server_bin: /usr/local/bin/minio
|
||||||
minio_client_bin: /usr/local/bin/mc
|
minio_client_bin: /usr/local/bin/mc
|
||||||
|
|
||||||
# Runtime user and group for the minio server service
|
# Runtime user and group for the Minio server service
|
||||||
minio_user: minio
|
minio_user: minio
|
||||||
minio_group: minio
|
minio_group: minio
|
||||||
|
|
||||||
# Path to the file containing the ENV variables for the minio server
|
# Path to the file containing the ENV variables for the Minio server
|
||||||
minio_server_envfile: /etc/default/minio
|
minio_server_envfile: /etc/default/minio
|
||||||
|
|
||||||
# Minio server listen address
|
# Minio server listen address
|
||||||
minio_server_addr: ":9091"
|
minio_server_addr: ":9091"
|
||||||
|
|
||||||
# Minio server data directories
|
# Minio server data directories
|
||||||
minio_server_datadirs: [ ]
|
minio_server_datadirs:
|
||||||
|
- /var/lib/minio
|
||||||
minio_server_make_datadirs: true
|
minio_server_make_datadirs: true
|
||||||
|
|
||||||
# Minio server cluster node list.
|
# Minio server cluster node list.
|
||||||
minio_server_cluster_nodes: [ ]
|
minio_server_cluster_nodes: [ ]
|
||||||
|
|
||||||
# Additional minio server CLI options
|
# Additional environment variables to be set in Minio server environment
|
||||||
|
minio_server_env_extra: ""
|
||||||
|
|
||||||
|
# Additional Minio server CLI options
|
||||||
minio_server_opts: ""
|
minio_server_opts: ""
|
||||||
|
|
||||||
# Minio access and secret keys
|
# Minio access and secret keys
|
||||||
minio_access_key: ""
|
minio_access_key: ""
|
||||||
minio_secret_key: ""
|
minio_secret_key: ""
|
||||||
|
|
||||||
# Switches to enable/disable the minio server and/or minio client installation.
|
# Switches to enable/disable the Minio server and/or Minio client installation.
|
||||||
minio_install_server: true
|
minio_install_server: true
|
||||||
minio_install_client: true
|
minio_install_client: true
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
---
|
|
||||||
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
|
|
@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
- 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"
|
|
@ -1,49 +0,0 @@
|
|||||||
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")
|
|
@ -1,8 +1,13 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
scenario:
|
||||||
|
name: cluster
|
||||||
|
|
||||||
driver:
|
driver:
|
||||||
name: docker
|
name: docker
|
||||||
lint:
|
|
||||||
name: yamllint
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
|
||||||
platforms:
|
platforms:
|
||||||
- name: minio-centos-7
|
- name: minio-centos-7
|
||||||
@ -31,21 +36,26 @@ platforms:
|
|||||||
volumes:
|
volumes:
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
|
||||||
|
|
||||||
provisioner:
|
provisioner:
|
||||||
name: ansible
|
name: ansible
|
||||||
lint:
|
lint:
|
||||||
name: ansible-lint
|
name: ansible-lint
|
||||||
|
options:
|
||||||
|
diff: True
|
||||||
|
v: True
|
||||||
playbooks:
|
playbooks:
|
||||||
create: ../default/create.yml
|
create: ../resources/create.yml
|
||||||
prepare: ../default/prepare.yml
|
prepare: ../resources/prepare.yml
|
||||||
converge: playbook.yml
|
destroy: ../resources/destroy.yml
|
||||||
destroy: ../default/destroy.yml
|
|
||||||
|
lint:
|
||||||
|
name: yamllint
|
||||||
|
|
||||||
scenario:
|
|
||||||
name: cluster
|
|
||||||
verifier:
|
verifier:
|
||||||
name: testinfra
|
name: testinfra
|
||||||
|
options:
|
||||||
|
vvv: True
|
||||||
|
additional_files_or_dirs:
|
||||||
|
- ../resources/tests/
|
||||||
lint:
|
lint:
|
||||||
name: flake8
|
name: flake8
|
||||||
enabled: true
|
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
- hosts: all
|
- hosts: all
|
||||||
any_errors_fatal: true
|
any_errors_fatal: true
|
||||||
roles:
|
|
||||||
- ansible-minio
|
|
||||||
vars:
|
vars:
|
||||||
minio_server_datadirs:
|
minio_server_datadirs:
|
||||||
- "/test1"
|
- "/test1"
|
||||||
@ -15,3 +13,6 @@
|
|||||||
- "http://{{ ansible_hostname }}:9091/test2"
|
- "http://{{ ansible_hostname }}:9091/test2"
|
||||||
- "http://{{ ansible_hostname }}:9091/test3"
|
- "http://{{ ansible_hostname }}:9091/test3"
|
||||||
- "http://{{ ansible_hostname }}:9091/test4"
|
- "http://{{ ansible_hostname }}:9091/test4"
|
||||||
|
roles:
|
||||||
|
- ansible-minio
|
||||||
|
|
||||||
|
@ -1,38 +1,30 @@
|
|||||||
|
import os
|
||||||
import yaml
|
import yaml
|
||||||
import pytest
|
import pytest
|
||||||
import testinfra.utils.ansible_runner
|
import testinfra.utils.ansible_runner
|
||||||
|
|
||||||
|
|
||||||
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
||||||
'.molecule/ansible_inventory').get_hosts('all')
|
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def AnsibleDefaults(Ansible):
|
def AnsibleDefaults(Ansible):
|
||||||
with open("./defaults/main.yml", 'r') as stream:
|
with open("../../defaults/main.yml", 'r') as stream:
|
||||||
return yaml.load(stream)
|
return yaml.load(stream)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("dirs", [
|
@pytest.mark.parametrize('minio_datadir', [
|
||||||
"/minio-test"
|
'/test1',
|
||||||
|
'/test2',
|
||||||
|
'/test3',
|
||||||
|
'/test4'
|
||||||
])
|
])
|
||||||
def test_directories(host, dirs):
|
def test_directories(host, AnsibleDefaults, minio_datadir):
|
||||||
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'
|
|
||||||
|
|
||||||
|
d = host.file(minio_datadir)
|
||||||
def test_env_file(host):
|
assert d.is_directory
|
||||||
env_file = host.file("/etc/default/minio")
|
assert d.exists
|
||||||
a = host.ansible.get_variables()
|
assert d.user == AnsibleDefaults['minio_user']
|
||||||
host = a['ansible_hostname']
|
assert d.group == AnsibleDefaults['minio_group']
|
||||||
volume_string = "MINIO_VOLUMES=\"http://%s:9091/test1 " % (host)
|
assert oct(d.mode) == '0750'
|
||||||
assert env_file.contains(volume_string)
|
|
||||||
|
|
||||||
|
|
||||||
def test_minio_service(Service):
|
|
||||||
s = Service('minio')
|
|
||||||
assert s.is_running
|
|
||||||
assert s.is_enabled
|
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
scenario:
|
||||||
|
name: default
|
||||||
|
|
||||||
driver:
|
driver:
|
||||||
name: docker
|
name: docker
|
||||||
lint:
|
|
||||||
name: yamllint
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
|
||||||
platforms:
|
platforms:
|
||||||
- name: minio-centos-7
|
- name: minio-centos-7
|
||||||
@ -31,21 +36,26 @@ platforms:
|
|||||||
volumes:
|
volumes:
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
|
||||||
|
|
||||||
provisioner:
|
provisioner:
|
||||||
name: ansible
|
name: ansible
|
||||||
lint:
|
lint:
|
||||||
name: ansible-lint
|
name: ansible-lint
|
||||||
|
options:
|
||||||
|
diff: True
|
||||||
|
v: True
|
||||||
playbooks:
|
playbooks:
|
||||||
create: create.yml
|
create: ../resources/create.yml
|
||||||
prepare: prepare.yml
|
destroy: ../resources/destroy.yml
|
||||||
converge: playbook.yml
|
prepare: ../resources/prepare.yml
|
||||||
destroy: destroy.yml
|
|
||||||
|
lint:
|
||||||
|
name: yamllint
|
||||||
|
|
||||||
scenario:
|
|
||||||
name: default
|
|
||||||
verifier:
|
verifier:
|
||||||
name: testinfra
|
name: testinfra
|
||||||
|
options:
|
||||||
|
vvv: True
|
||||||
|
additional_files_or_dirs:
|
||||||
|
- ../resources/tests/
|
||||||
lint:
|
lint:
|
||||||
name: flake8
|
name: flake8
|
||||||
enabled: true
|
|
||||||
|
@ -4,5 +4,3 @@
|
|||||||
any_errors_fatal: true
|
any_errors_fatal: true
|
||||||
roles:
|
roles:
|
||||||
- ansible-minio
|
- ansible-minio
|
||||||
vars:
|
|
||||||
minio_server_datadirs: [ "/minio-test" ]
|
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Prepare
|
|
||||||
hosts: all
|
|
||||||
gather_facts: false
|
|
||||||
tasks: []
|
|
@ -1,44 +0,0 @@
|
|||||||
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
|
|
38
molecule/default/tests/test_minio_default.py
Normal file
38
molecule/default/tests/test_minio_default.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import os
|
||||||
|
import yaml
|
||||||
|
import pytest
|
||||||
|
import testinfra.utils.ansible_runner
|
||||||
|
|
||||||
|
|
||||||
|
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
||||||
|
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture()
|
||||||
|
def AnsibleDefaults(Ansible):
|
||||||
|
with open("../../defaults/main.yml", 'r') as stream:
|
||||||
|
return yaml.load(stream)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('minio_bin_var', [
|
||||||
|
'minio_server_bin',
|
||||||
|
'minio_client_bin',
|
||||||
|
])
|
||||||
|
def test_minio_installed(host, AnsibleDefaults, minio_bin_var):
|
||||||
|
|
||||||
|
f = host.file(AnsibleDefaults[minio_bin_var])
|
||||||
|
assert f.exists
|
||||||
|
assert f.user == 'root'
|
||||||
|
assert f.group == 'root'
|
||||||
|
assert oct(f.mode) == '0755'
|
||||||
|
|
||||||
|
|
||||||
|
def test_directories(host, AnsibleDefaults):
|
||||||
|
|
||||||
|
for datadir in AnsibleDefaults['minio_server_datadirs']:
|
||||||
|
d = host.file(datadir)
|
||||||
|
assert d.is_directory
|
||||||
|
assert d.exists
|
||||||
|
assert d.user == AnsibleDefaults['minio_user']
|
||||||
|
assert d.group == AnsibleDefaults['minio_group']
|
||||||
|
assert oct(d.mode) == '0750'
|
12
molecule/resources/prepare.yml
Normal file
12
molecule/resources/prepare.yml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
- name: Prepare
|
||||||
|
hosts: all
|
||||||
|
gather_facts: true
|
||||||
|
tasks:
|
||||||
|
- name: Install ansible support packages
|
||||||
|
package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- ca-certificates
|
||||||
|
when: ansible_os_family == 'Debian'
|
13
molecule/resources/tests/test_minio_common.py
Normal file
13
molecule/resources/tests/test_minio_common.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import os
|
||||||
|
import testinfra.utils.ansible_runner
|
||||||
|
|
||||||
|
|
||||||
|
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
||||||
|
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
|
||||||
|
|
||||||
|
|
||||||
|
def test_minio_service(host):
|
||||||
|
|
||||||
|
s = host.service('minio')
|
||||||
|
assert s.is_running
|
||||||
|
assert s.is_enabled
|
@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
- name: download minio client
|
|
||||||
get_url:
|
|
||||||
url: "{{ minio_client_download_url }}"
|
|
||||||
dest: "{{ minio_client_bin }}"
|
|
||||||
owner: "root"
|
|
||||||
group: "root"
|
|
||||||
mode: 0755
|
|
||||||
checksum: "sha256:{{ minio_client_checksum }}"
|
|
||||||
register: _download_client
|
|
||||||
until: _download_client is succeeded
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
22
tasks/install-client.yml
Normal file
22
tasks/install-client.yml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Compose the Minio client download url
|
||||||
|
set_fact:
|
||||||
|
_minio_client_download_url: "https://dl.minio.io/client/mc/release/linux-{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}/mc"
|
||||||
|
|
||||||
|
- name: "Get the Minio client checksum for {{ go_arch_map[ansible_architecture] | default(ansible_architecture) }} architecture"
|
||||||
|
set_fact:
|
||||||
|
_minio_client_checksum: "{{ lookup('url', _minio_client_download_url + '.sha256sum').split(' ')[0] }}"
|
||||||
|
|
||||||
|
- name: Download the Minio client
|
||||||
|
get_url:
|
||||||
|
url: "{{ _minio_client_download_url }}"
|
||||||
|
dest: "{{ minio_client_bin }}"
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: 0755
|
||||||
|
checksum: "sha256:{{ _minio_client_checksum }}"
|
||||||
|
register: _download_client
|
||||||
|
until: _download_client is succeeded
|
||||||
|
retries: 5
|
||||||
|
delay: 2
|
@ -1,16 +1,25 @@
|
|||||||
---
|
---
|
||||||
- name: create minio group
|
|
||||||
|
- name: Compose the Minio server download url
|
||||||
|
set_fact:
|
||||||
|
_minio_server_download_url: "https://dl.minio.io/server/minio/release/linux-{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}/minio"
|
||||||
|
|
||||||
|
- name: "Get the Minio server checksum for {{ go_arch_map[ansible_architecture] | default(ansible_architecture) }} architecture"
|
||||||
|
set_fact:
|
||||||
|
_minio_server_checksum: "{{ lookup('url', _minio_server_download_url + '.sha256sum').split(' ')[0] }}"
|
||||||
|
|
||||||
|
- name: Create Minio group
|
||||||
group:
|
group:
|
||||||
name: "{{ minio_group }}"
|
name: "{{ minio_group }}"
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: create minio user
|
- name: Create Minio user
|
||||||
user:
|
user:
|
||||||
name: "{{ minio_user }}"
|
name: "{{ minio_user }}"
|
||||||
group: "{{ minio_group }}"
|
group: "{{ minio_group }}"
|
||||||
shell: /bin/bash
|
shell: /bin/bash
|
||||||
|
|
||||||
- name: create data storage directories
|
- name: Create the Minio data storage directories
|
||||||
file:
|
file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
@ -20,39 +29,39 @@
|
|||||||
when: minio_server_make_datadirs
|
when: minio_server_make_datadirs
|
||||||
with_items: "{{ minio_server_datadirs }}"
|
with_items: "{{ minio_server_datadirs }}"
|
||||||
|
|
||||||
- name: download minio server
|
- name: Download the Minio server
|
||||||
get_url:
|
get_url:
|
||||||
url: "{{ minio_server_download_url }}"
|
url: "{{ _minio_server_download_url }}"
|
||||||
dest: "{{ minio_server_bin }}"
|
dest: "{{ minio_server_bin }}"
|
||||||
owner: "root"
|
owner: "root"
|
||||||
group: "root"
|
group: "root"
|
||||||
mode: 0755
|
mode: 0755
|
||||||
checksum: "sha256:{{ minio_server_checksum }}"
|
checksum: "sha256:{{ _minio_server_checksum }}"
|
||||||
register: _download_server
|
register: _download_server
|
||||||
until: _download_server is succeeded
|
until: _download_server is succeeded
|
||||||
retries: 5
|
retries: 5
|
||||||
delay: 2
|
delay: 2
|
||||||
|
|
||||||
- name: generate the minio server envfile
|
- name: Generate the Minio server envfile
|
||||||
template:
|
template:
|
||||||
src: minio.env.j2
|
src: minio.env.j2
|
||||||
dest: "{{ minio_server_envfile }}"
|
dest: "{{ minio_server_envfile }}"
|
||||||
notify: restart minio
|
notify: restart minio
|
||||||
|
|
||||||
- name: create the minio server systemd config
|
- name: Create the Minio server systemd config
|
||||||
template:
|
template:
|
||||||
src: minio.service.j2
|
src: minio.service.j2
|
||||||
dest: "/etc/systemd/system/minio.service"
|
dest: "/etc/systemd/system/minio.service"
|
||||||
when: ansible_service_mgr == "systemd"
|
when: ansible_service_mgr == "systemd"
|
||||||
|
|
||||||
- name: create the minio server init.d config
|
- name: Create the Minio server init.d config
|
||||||
template:
|
template:
|
||||||
src: minio.init.j2
|
src: minio.init.j2
|
||||||
dest: "/etc/init.d/minio"
|
dest: "/etc/init.d/minio"
|
||||||
mode: 0750
|
mode: 0750
|
||||||
when: ansible_service_mgr != "systemd"
|
when: ansible_service_mgr != "systemd"
|
||||||
|
|
||||||
- name: enable and start the minio service
|
- name: Enable and start the Minio service
|
||||||
service:
|
service:
|
||||||
name: minio
|
name: minio
|
||||||
state: started
|
state: started
|
@ -1,38 +1,14 @@
|
|||||||
---
|
---
|
||||||
- include: preflight.yml
|
|
||||||
|
|
||||||
- name: add the python sni support to legacy python installations
|
- name: Add sni support to legacy python installations
|
||||||
include: python_sni.yml
|
include: python_sni.yml
|
||||||
when:
|
when:
|
||||||
- ansible_os_family == 'Debian'
|
- ansible_os_family == 'Debian'
|
||||||
- ansible_python_version is version_compare('2.6.0', '>=')
|
- ansible_python_version is version_compare('2.6.0', '>=')
|
||||||
- ansible_python_version is version_compare('2.7.9', '<')
|
- ansible_python_version is version_compare('2.7.9', '<')
|
||||||
|
|
||||||
- name: install ansible support packages
|
- include: install-server.yml
|
||||||
package:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: present
|
|
||||||
with_items:
|
|
||||||
- ca-certificates
|
|
||||||
register: _install_packages
|
|
||||||
until: _install_packages is succeeded
|
|
||||||
retries: 5
|
|
||||||
delay: 2
|
|
||||||
when: ansible_os_family == 'Debian'
|
|
||||||
|
|
||||||
- name: create minio group
|
|
||||||
group:
|
|
||||||
name: "{{ minio_group }}"
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: create minio user
|
|
||||||
user:
|
|
||||||
name: "{{ minio_user }}"
|
|
||||||
group: "{{ minio_group }}"
|
|
||||||
shell: /bin/bash
|
|
||||||
|
|
||||||
- include: server.yml
|
|
||||||
when: minio_install_server
|
when: minio_install_server
|
||||||
|
|
||||||
- include: client.yml
|
- include: install-client.yml
|
||||||
when: minio_install_client
|
when: minio_install_client
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
---
|
|
||||||
- block:
|
|
||||||
- name: Compose Minio download url
|
|
||||||
set_fact:
|
|
||||||
minio_server_download_url: "https://dl.minio.io/server/minio/release/linux-{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}/minio"
|
|
||||||
|
|
||||||
- name: "Minio server checksum for {{ go_arch_map[ansible_architecture] | default(ansible_architecture) }} architecture"
|
|
||||||
set_fact:
|
|
||||||
minio_server_checksum: "{{ lookup('url', minio_server_download_url + '.sha256sum').split(' ')[0] }}"
|
|
||||||
when:
|
|
||||||
- minio_install_server
|
|
||||||
|
|
||||||
- block:
|
|
||||||
- name: Compose MC download url
|
|
||||||
set_fact:
|
|
||||||
minio_client_download_url: "https://dl.minio.io/client/mc/release/linux-{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}/mc"
|
|
||||||
|
|
||||||
- name: "Minio client checksum for {{ go_arch_map[ansible_architecture] | default(ansible_architecture) }} architecture"
|
|
||||||
set_fact:
|
|
||||||
minio_client_checksum: "{{ lookup('url', minio_client_download_url + '.sha256sum').split(' ')[0] }}"
|
|
||||||
when:
|
|
||||||
- minio_install_client
|
|
@ -1,4 +1,5 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
- name: install python-pip and SNI support packages
|
- name: install python-pip and SNI support packages
|
||||||
package:
|
package:
|
||||||
name: "{{ item }}"
|
name: "{{ item }}"
|
||||||
|
@ -17,3 +17,5 @@ MINIO_ACCESS_KEY="{{ minio_access_key }}"
|
|||||||
# Secret key of the server.
|
# Secret key of the server.
|
||||||
MINIO_SECRET_KEY="{{ minio_secret_key }}"
|
MINIO_SECRET_KEY="{{ minio_secret_key }}"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{{ minio_server_env_extra }}
|
||||||
|
4
tox.ini
4
tox.ini
@ -1,6 +1,6 @@
|
|||||||
[tox]
|
[tox]
|
||||||
minversion = 1.8
|
minversion = 1.8
|
||||||
envlist = py{27}-ansible{23,24,25}
|
envlist = py{27}-ansible{23,24,25,26}
|
||||||
skipsdist = true
|
skipsdist = true
|
||||||
|
|
||||||
[travis:env]
|
[travis:env]
|
||||||
@ -8,6 +8,7 @@ ANSIBLE=
|
|||||||
2.3: ansible23
|
2.3: ansible23
|
||||||
2.4: ansible24
|
2.4: ansible24
|
||||||
2.5: ansible25
|
2.5: ansible25
|
||||||
|
2.6: ansible26
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
passenv = *
|
passenv = *
|
||||||
@ -16,5 +17,6 @@ deps =
|
|||||||
ansible23: ansible<2.4
|
ansible23: ansible<2.4
|
||||||
ansible24: ansible<2.5
|
ansible24: ansible<2.5
|
||||||
ansible25: ansible<2.6
|
ansible25: ansible<2.6
|
||||||
|
ansible26: ansible<2.7
|
||||||
commands =
|
commands =
|
||||||
{posargs:molecule test --all --destroy always}
|
{posargs:molecule test --all --destroy always}
|
||||||
|
Loading…
Reference in New Issue
Block a user