From 68cf157b8fd985ceeb75a7a066040835a680ccf4 Mon Sep 17 00:00:00 2001 From: khiladi1314 Date: Mon, 5 Aug 2024 12:03:08 +0530 Subject: [PATCH 01/16] minio setup --- ansible.cfg | 8 +++++ aws_ec2.yml | 16 +++++++++ minio_role/README.md | 38 ++++++++++++++++++++ minio_role/defaults/main.yml | 10 ++++++ minio_role/files/minio.service | 14 ++++++++ minio_role/handlers/main.yml | 9 +++++ minio_role/meta/main.yml | 8 +++++ minio_role/tasks/configure.yml | 38 ++++++++++++++++++++ minio_role/tasks/install.yml | 21 +++++++++++ minio_role/tasks/main.yml | 44 +++++++++++++++++++++++ minio_role/tasks/service.yml | 58 ++++++++++++++++++++++++++++++ minio_role/templates/minio.conf.j2 | 3 ++ minio_role/tests/inventory | 2 ++ minio_role/tests/test.yml | 4 +++ minio_role/vars/main.yml | 3 ++ playbook.yml | 5 +++ 16 files changed, 281 insertions(+) create mode 100644 ansible.cfg create mode 100644 aws_ec2.yml create mode 100644 minio_role/README.md create mode 100644 minio_role/defaults/main.yml create mode 100644 minio_role/files/minio.service create mode 100644 minio_role/handlers/main.yml create mode 100644 minio_role/meta/main.yml create mode 100644 minio_role/tasks/configure.yml create mode 100644 minio_role/tasks/install.yml create mode 100644 minio_role/tasks/main.yml create mode 100644 minio_role/tasks/service.yml create mode 100644 minio_role/templates/minio.conf.j2 create mode 100644 minio_role/tests/inventory create mode 100644 minio_role/tests/test.yml create mode 100644 minio_role/vars/main.yml create mode 100644 playbook.yml diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..94951b6 --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,8 @@ +[defaults] +#roles_path = ./redis_role +inventory = /home/sahil/minio_ansible/minio_role/aws_ec2.yml +host_key_checking = False +remote_user = ubuntu +private_key_file = /home/sahil/Downloads/minio.pem +#[inventory] +#enable_plugins = aws_ec2 diff --git a/aws_ec2.yml b/aws_ec2.yml new file mode 100644 index 0000000..179234f --- /dev/null +++ b/aws_ec2.yml @@ -0,0 +1,16 @@ +# [webserver] + +# web01 ansible_host=ubuntu@13.124.155.20 ansible_private_key_file=/home/sahil/Downloads/minio.pem + +--- +plugin: aws_ec2 +regions: + - ap-northeast-2 + + +filters: + tag:Name: minio + +ansible_user: "ubuntu" +host_key_checking: False +ansible_ssh_private_key_file: /home/sahil/downloads/minio.pem \ No newline at end of file diff --git a/minio_role/README.md b/minio_role/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/minio_role/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + + - hosts: servers + roles: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/minio_role/defaults/main.yml b/minio_role/defaults/main.yml new file mode 100644 index 0000000..6d194d7 --- /dev/null +++ b/minio_role/defaults/main.yml @@ -0,0 +1,10 @@ +--- +# defaults file for minio_role +minio_version: "RELEASE.2024-08-01T00-00-00Z" +minio_port: 9000 +minio_data_dir: /data/minio +minio_config_dir: /etc/minio +minio_user: minio +minio_group: minio +minio_access_key: "your-access-key" +minio_secret_key: "your-secret-key" diff --git a/minio_role/files/minio.service b/minio_role/files/minio.service new file mode 100644 index 0000000..9c84288 --- /dev/null +++ b/minio_role/files/minio.service @@ -0,0 +1,14 @@ +[Unit] +Description=MinIO +Documentation=https://docs.min.io +After=network.target + +[Service] +User=minio +Group=minio +ExecStart=/usr/local/bin/minio server /data --config-dir /etc/minio +Restart=on-failure +EnvironmentFile=-/etc/default/minio + +[Install] +WantedBy=multi-user.target diff --git a/minio_role/handlers/main.yml b/minio_role/handlers/main.yml new file mode 100644 index 0000000..e806e3e --- /dev/null +++ b/minio_role/handlers/main.yml @@ -0,0 +1,9 @@ +--- +# handlers file for minio_role +- name: restart minio + systemd: + name: minio + state: restarted + + + diff --git a/minio_role/meta/main.yml b/minio_role/meta/main.yml new file mode 100644 index 0000000..fb036d5 --- /dev/null +++ b/minio_role/meta/main.yml @@ -0,0 +1,8 @@ +# meta/main.yml +dependencies: [] + +galaxy_info: + author: your_name + description: Ansible role for MinIO + company: your_company + license: license_name diff --git a/minio_role/tasks/configure.yml b/minio_role/tasks/configure.yml new file mode 100644 index 0000000..ea4405d --- /dev/null +++ b/minio_role/tasks/configure.yml @@ -0,0 +1,38 @@ +# tasks/configure.yml + - name: Ensure minio group exists + group: + name: minio + state: present + retries: 5 + delay: 5 + until: result is success + register: result + become: yes + + - name: Ensure minio user exists + user: + name: minio + group: minio + create_home: yes + shell: /bin/bash + state: present + become: yes + + + - name: Create MinIO configuration directory + file: + path: /etc/minio + state: directory + mode: '0755' + owner: minio + group: minio + become: yes + + + + + + + + + \ No newline at end of file diff --git a/minio_role/tasks/install.yml b/minio_role/tasks/install.yml new file mode 100644 index 0000000..5a468d1 --- /dev/null +++ b/minio_role/tasks/install.yml @@ -0,0 +1,21 @@ + + + - name: Download MinIO binary + get_url: + url: https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240731054626.0.0_amd64.deb + dest: /tmp/minio.deb + mode: '0755' + become: yes + + - name: Install MinIO binary + apt: + deb: /tmp/minio.deb + become: yes + + + + + + + + diff --git a/minio_role/tasks/main.yml b/minio_role/tasks/main.yml new file mode 100644 index 0000000..7965de7 --- /dev/null +++ b/minio_role/tasks/main.yml @@ -0,0 +1,44 @@ +--- +# tasks file for minio_role +- name: Install MinIO + include_tasks: install.yml + +- name: Configure MinIO + include_tasks: configure.yml + +- name: Manage MinIO service + include_tasks: service.yml + + +- name: Update APT package index (Debian) + apt: + update_cache: yes + when: ansible_os_family == "Debian" + become: yes + +- name: Ensure essential packages are installed (Debian) + apt: + name: "{{ item }}" + state: present + loop: + - vim + - git + - curl + - wget + when: ansible_os_family == "Debian" + become: yes + +- name: Ensure essential packages are installed (RedHat/CentOS) + yum: + name: "{{ item }}" + state: present + loop: + - vim + - git + - curl + - wget + when: ansible_os_family == "RedHat" + become: yes + + + diff --git a/minio_role/tasks/service.yml b/minio_role/tasks/service.yml new file mode 100644 index 0000000..8f1074a --- /dev/null +++ b/minio_role/tasks/service.yml @@ -0,0 +1,58 @@ +- name: Create MinIO group + group: + name: minio + state: present + become: yes + +- name: Create MinIO user + user: + name: minio + group: minio + system: yes + shell: /sbin/nologin + become: yes + +- name: Set ownership of MinIO binary + file: + path: /usr/local/bin/minio + owner: minio + group: minio + mode: '0755' + become: yes + +- name: Set ownership of MinIO data directory + file: + path: /data + owner: minio + group: minio + recurse: yes + become: yes + +- name: Set ownership of MinIO config directory + file: + path: /etc/minio + owner: minio + group: minio + recurse: yes + become: yes + +- name: Copy MinIO service file + copy: + src: minio.service + dest: /etc/systemd/system/minio.service + mode: '0644' + become: yes + +- name: Reload systemd + command: systemctl daemon-reload + become: yes + async: 120 + poll: 10 + register: result + +- name: Debug systemd reload result + debug: + var: result + become: yes + + diff --git a/minio_role/templates/minio.conf.j2 b/minio_role/templates/minio.conf.j2 new file mode 100644 index 0000000..43dc303 --- /dev/null +++ b/minio_role/templates/minio.conf.j2 @@ -0,0 +1,3 @@ +# minio.conf.j2 +MINIO_ACCESS_KEY={{ minio_access_key }} +MINIO_SECRET_KEY={{ minio_secret_key }} diff --git a/minio_role/tests/inventory b/minio_role/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/minio_role/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/minio_role/tests/test.yml b/minio_role/tests/test.yml new file mode 100644 index 0000000..e5f8592 --- /dev/null +++ b/minio_role/tests/test.yml @@ -0,0 +1,4 @@ +# tests/test.yml +- hosts: all + roles: + - minio diff --git a/minio_role/vars/main.yml b/minio_role/vars/main.yml new file mode 100644 index 0000000..210b55b --- /dev/null +++ b/minio_role/vars/main.yml @@ -0,0 +1,3 @@ +--- +# vars file for minio_role +# minio_download_url: "wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240731054626.0.0_amd64.deb -O minio.deb sudo dpkg -i minio.deb" diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..b86a822 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,5 @@ +--- + +- hosts: aws_ec2 + roles: + - minio_role From 38405a25ab26f4baecfbe325e5eca1094c9f6031 Mon Sep 17 00:00:00 2001 From: Sahil_Gupta <164473861+shishang1314@users.noreply.github.com> Date: Mon, 5 Aug 2024 12:41:10 +0530 Subject: [PATCH 02/16] Update README.md From f2a77975a93f607e61dae78323f9dc184840cce7 Mon Sep 17 00:00:00 2001 From: khiladi1314 Date: Mon, 5 Aug 2024 16:54:01 +0530 Subject: [PATCH 03/16] standalone --- minio_role/handlers/main.yml | 18 ++++-- minio_role/meta/main.yml | 12 ++-- minio_role/tasks/configure.yml | 113 ++++++++++++++++++++++----------- minio_role/tasks/install.yml | 35 ++++------ minio_role/tasks/main.yml | 47 +++----------- minio_role/tasks/service.yml | 58 ----------------- minio_role/tests/inventory | 2 - minio_role/tests/test.yml | 4 -- minio_role/vars/main.yml | 72 ++++++++++++++++++++- playbook.yml | 1 + 10 files changed, 189 insertions(+), 173 deletions(-) delete mode 100644 minio_role/tasks/service.yml delete mode 100644 minio_role/tests/inventory delete mode 100644 minio_role/tests/test.yml diff --git a/minio_role/handlers/main.yml b/minio_role/handlers/main.yml index e806e3e..b0e1af4 100644 --- a/minio_role/handlers/main.yml +++ b/minio_role/handlers/main.yml @@ -1,9 +1,19 @@ --- # handlers file for minio_role -- name: restart minio - systemd: - name: minio - state: restarted +- name: Restart MinIO + systemd: + name: "{{ handlers.restart_minio.name }}" + state: "{{ handlers.restart_minio.state }}" +- name: Reload systemd + command: "{{ handlers.reload_systemd.command }}" + become: "{{ handlers.reload_systemd.become }}" + async: "{{ handlers.reload_systemd.async }}" + poll: "{{ handlers.reload_systemd.poll }}" + register: result +- name: Debug systemd reload result + debug: + var: "{{ handlers.debug_systemd_result.debug_var }}" + become: "{{ handlers.debug_systemd_result.become }}" diff --git a/minio_role/meta/main.yml b/minio_role/meta/main.yml index fb036d5..e2e9c70 100644 --- a/minio_role/meta/main.yml +++ b/minio_role/meta/main.yml @@ -1,8 +1,10 @@ -# meta/main.yml +--- +# meta file for minio_role + dependencies: [] galaxy_info: - author: your_name - description: Ansible role for MinIO - company: your_company - license: license_name + author: "{{ author }}" + description: "{{ description }}" + company: "{{ company }}" + license: "{{ license }}" diff --git a/minio_role/tasks/configure.yml b/minio_role/tasks/configure.yml index ea4405d..cfa5841 100644 --- a/minio_role/tasks/configure.yml +++ b/minio_role/tasks/configure.yml @@ -1,38 +1,75 @@ -# tasks/configure.yml - - name: Ensure minio group exists - group: - name: minio - state: present - retries: 5 - delay: 5 - until: result is success - register: result - become: yes - - - name: Ensure minio user exists - user: - name: minio - group: minio - create_home: yes - shell: /bin/bash - state: present - become: yes - - - - name: Create MinIO configuration directory - file: - path: /etc/minio - state: directory - mode: '0755' - owner: minio - group: minio - become: yes - - - - - - - - - \ No newline at end of file +--- +# tasks file for minio_role + +- name: Ensure minio group exists + group: + name: "{{ minio_group_name }}" + state: present + retries: 5 + delay: 5 + until: result is success + register: result + become: yes + +- name: Ensure minio user exists + user: + name: "{{ minio_user_name }}" + group: "{{ minio_group_name }}" + create_home: yes + shell: "{{ minio_user_shell }}" + state: present + become: yes + +- name: Create MinIO configuration directory + file: + path: "{{ minio_config_dir }}" + state: directory + mode: "{{ directory_mode }}" + owner: "{{ minio_user_name }}" + group: "{{ minio_group_name }}" + become: yes + +- name: Create MinIO group + group: + name: "{{ minio_group_name }}" + state: present + become: yes + +- name: Create MinIO user + user: + name: "{{ minio_user_name }}" + group: "{{ minio_group_name }}" + system: "{{ minio_user_system }}" + shell: "{{ minio_user_shell }}" + become: yes + +- name: Set ownership of MinIO binary + file: + path: "{{ minio_binary_path }}" + owner: "{{ minio_user_name }}" + group: "{{ minio_group_name }}" + mode: "{{ directory_mode }}" + become: yes + +- name: Set ownership of MinIO data directory + file: + path: "{{ minio_data_dir }}" + owner: "{{ minio_user_name }}" + group: "{{ minio_group_name }}" + recurse: yes + become: yes + +- name: Set ownership of MinIO config directory + file: + path: "{{ minio_config_dir }}" + owner: "{{ minio_user_name }}" + group: "{{ minio_group_name }}" + recurse: yes + become: yes + +- name: Copy MinIO service file + copy: + src: "{{ minio_service_src }}" + dest: "{{ minio_service_dest }}" + mode: "{{ file_mode }}" + become: yes diff --git a/minio_role/tasks/install.yml b/minio_role/tasks/install.yml index 5a468d1..e3d4900 100644 --- a/minio_role/tasks/install.yml +++ b/minio_role/tasks/install.yml @@ -1,21 +1,14 @@ - - - - name: Download MinIO binary - get_url: - url: https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240731054626.0.0_amd64.deb - dest: /tmp/minio.deb - mode: '0755' - become: yes - - - name: Install MinIO binary - apt: - deb: /tmp/minio.deb - become: yes - - - - - - - - +--- +# tasks file for minio_role + +- name: Download MinIO binary + get_url: + url: "{{ minio_download_url }}" + dest: "{{ minio_deb_path }}" + mode: "{{ deb_file_mode }}" + become: yes + +- name: Install MinIO binary + apt: + deb: "{{ minio_deb_path }}" + become: yes diff --git a/minio_role/tasks/main.yml b/minio_role/tasks/main.yml index 7965de7..dfd6a57 100644 --- a/minio_role/tasks/main.yml +++ b/minio_role/tasks/main.yml @@ -1,44 +1,13 @@ --- -# tasks file for minio_role -- name: Install MinIO - include_tasks: install.yml - -- name: Configure MinIO - include_tasks: configure.yml - -- name: Manage MinIO service - include_tasks: service.yml - - -- name: Update APT package index (Debian) - apt: - update_cache: yes - when: ansible_os_family == "Debian" - become: yes - -- name: Ensure essential packages are installed (Debian) - apt: - name: "{{ item }}" - state: present - loop: - - vim - - git - - curl - - wget - when: ansible_os_family == "Debian" - become: yes +# Tasks for Debian-based systems -- name: Ensure essential packages are installed (RedHat/CentOS) - yum: - name: "{{ item }}" - state: present - loop: - - vim - - git - - curl - - wget - when: ansible_os_family == "RedHat" +- name: Update apt package list + ansible.builtin.apt: + update_cache: "{{ update_cache }}" become: yes +- name: Install MinIO + include_tasks: "{{ install_tasks_file }}" - +- name: Configure MinIO + include_tasks: "{{ configure_tasks_file }}" diff --git a/minio_role/tasks/service.yml b/minio_role/tasks/service.yml deleted file mode 100644 index 8f1074a..0000000 --- a/minio_role/tasks/service.yml +++ /dev/null @@ -1,58 +0,0 @@ -- name: Create MinIO group - group: - name: minio - state: present - become: yes - -- name: Create MinIO user - user: - name: minio - group: minio - system: yes - shell: /sbin/nologin - become: yes - -- name: Set ownership of MinIO binary - file: - path: /usr/local/bin/minio - owner: minio - group: minio - mode: '0755' - become: yes - -- name: Set ownership of MinIO data directory - file: - path: /data - owner: minio - group: minio - recurse: yes - become: yes - -- name: Set ownership of MinIO config directory - file: - path: /etc/minio - owner: minio - group: minio - recurse: yes - become: yes - -- name: Copy MinIO service file - copy: - src: minio.service - dest: /etc/systemd/system/minio.service - mode: '0644' - become: yes - -- name: Reload systemd - command: systemctl daemon-reload - become: yes - async: 120 - poll: 10 - register: result - -- name: Debug systemd reload result - debug: - var: result - become: yes - - diff --git a/minio_role/tests/inventory b/minio_role/tests/inventory deleted file mode 100644 index 878877b..0000000 --- a/minio_role/tests/inventory +++ /dev/null @@ -1,2 +0,0 @@ -localhost - diff --git a/minio_role/tests/test.yml b/minio_role/tests/test.yml deleted file mode 100644 index e5f8592..0000000 --- a/minio_role/tests/test.yml +++ /dev/null @@ -1,4 +0,0 @@ -# tests/test.yml -- hosts: all - roles: - - minio diff --git a/minio_role/vars/main.yml b/minio_role/vars/main.yml index 210b55b..0001c4c 100644 --- a/minio_role/vars/main.yml +++ b/minio_role/vars/main.yml @@ -1,3 +1,71 @@ --- -# vars file for minio_role -# minio_download_url: "wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240731054626.0.0_amd64.deb -O minio.deb sudo dpkg -i minio.deb" +# handlers variables + +handlers.restart_minio.name: minio +handlers.restart_minio.state: restarted +handlers.reload_systemd.command: systemctl daemon-reload +handlers.reload_systemd.become: yes +handlers.reload_systemd.async: 120 +handlers.reload_systemd.poll: 10 +handlers.debug_systemd_result.debug_var: result +handlers.debug_systemd_result.become: yes + + +# Variables for role metadata + +# Galaxy info +author: "your_name" +description: "Ansible role for MinIO" +company: "your_company" +license: "license_name" + +# Variables for configuring MinIO + +# Group and user settings +minio_group_name: "minio" +minio_user_name: "minio" +minio_user_shell: "/sbin/nologin" +minio_user_home: "/home/minio" +minio_user_system: yes + +# MinIO directories and ownership +minio_config_dir: "/etc/minio" +minio_data_dir: "/data" +minio_binary_path: "/usr/local/bin/minio" +minio_service_src: "minio.service" +minio_service_dest: "/etc/systemd/system/minio.service" + +# Permissions +directory_mode: "0755" +file_mode: "0644" + + +# Variables for installing MinIO + +# MinIO binary download URL +minio_download_url: "https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240731054626.0.0_amd64.deb" + +# File paths and permissions +minio_deb_path: "/tmp/minio.deb" +deb_file_mode: "0755" + + +# Variables for Debian-based systems tasks + +# Update apt package list +update_cache: yes + +# File paths for tasks +install_tasks_file: "install.yml" +configure_tasks_file: "configure.yml" + + + + + + + + + + + diff --git a/playbook.yml b/playbook.yml index b86a822..b9593dd 100644 --- a/playbook.yml +++ b/playbook.yml @@ -3,3 +3,4 @@ - hosts: aws_ec2 roles: - minio_role + From bb44246d9b69e02114ca6efb0a6ea3db71ee6aae Mon Sep 17 00:00:00 2001 From: Sahil_Gupta <164473861+shishang1314@users.noreply.github.com> Date: Mon, 5 Aug 2024 16:57:54 +0530 Subject: [PATCH 04/16] Update main.yml From e2ad82b8790debc292309cf6e2f1f95f720ca53c Mon Sep 17 00:00:00 2001 From: Sahil_Gupta <164473861+shishang1314@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:05:23 +0530 Subject: [PATCH 05/16] Update main.yml From af9dbbab1ad472bac3f66f7bf56817a9a215951b Mon Sep 17 00:00:00 2001 From: shishang1314 Date: Mon, 5 Aug 2024 23:10:39 +0530 Subject: [PATCH 06/16] standalone --- minio_role/tasks/main.yml | 11 +++++++ .../tasks/setup_multi-node-multi-drive.yml | 30 +++++++++++++++++++ .../tasks/setup_single-node-multi-drive.yml | 29 ++++++++++++++++++ minio_role/vars/main.yml | 27 +++++++++++++++++ 4 files changed, 97 insertions(+) create mode 100644 minio_role/tasks/setup_multi-node-multi-drive.yml create mode 100644 minio_role/tasks/setup_single-node-multi-drive.yml diff --git a/minio_role/tasks/main.yml b/minio_role/tasks/main.yml index dfd6a57..2ce828a 100644 --- a/minio_role/tasks/main.yml +++ b/minio_role/tasks/main.yml @@ -11,3 +11,14 @@ - name: Configure MinIO include_tasks: "{{ configure_tasks_file }}" + + +- name: Include task variables + include_vars: vars/main.yml + + +- name: Setup MinIO + include_tasks: "setup_{{ minio_deployment_type }}.yml" + + + diff --git a/minio_role/tasks/setup_multi-node-multi-drive.yml b/minio_role/tasks/setup_multi-node-multi-drive.yml new file mode 100644 index 0000000..3ce9c29 --- /dev/null +++ b/minio_role/tasks/setup_multi-node-multi-drive.yml @@ -0,0 +1,30 @@ +--- +# Tasks for setting up MinIO on multiple nodes with multiple drives + +- name: Create MinIO configuration directory + file: + path: /etc/minio + state: directory + mode: '0755' + owner: minio + group: minio + become: yes + +- name: Set up MinIO data directories + file: + path: "{{ item }}" + state: directory + mode: '0755' + owner: minio + group: minio + with_items: "{{ minio_drives }}" + become: yes + +- name: Start MinIO server in distributed mode + shell: | + minio server http://{{ minio_nodes[0] }}/{{ minio_drives[0] }} http://{{ minio_nodes[1] }}/{{ minio_drives[1] }} ... + become: yes + environment: + MINIO_ACCESS_KEY: "{{ minio_access_key }}" + MINIO_SECRET_KEY: "{{ minio_secret_key }}" + become: yes diff --git a/minio_role/tasks/setup_single-node-multi-drive.yml b/minio_role/tasks/setup_single-node-multi-drive.yml new file mode 100644 index 0000000..69e8639 --- /dev/null +++ b/minio_role/tasks/setup_single-node-multi-drive.yml @@ -0,0 +1,29 @@ +--- +# Tasks for setting up MinIO on a single node with multiple drives + +- name: Create MinIO configuration directory + file: + path: /etc/minio + state: directory + mode: '0755' + owner: minio + group: minio + become: yes + +- name: Set up MinIO data directories + file: + path: "{{ item }}" + state: directory + mode: '0755' + owner: minio + group: minio + with_items: "{{ minio_drives }}" + become: yes + +- name: Start MinIO server + shell: | + minio server {{ minio_drives | join(' ') }} + become: yes + environment: + MINIO_ACCESS_KEY: "{{ minio_access_key }}" + MINIO_SECRET_KEY: "{{ minio_secret_key }}" diff --git a/minio_role/vars/main.yml b/minio_role/vars/main.yml index 0001c4c..e06a59a 100644 --- a/minio_role/vars/main.yml +++ b/minio_role/vars/main.yml @@ -60,6 +60,33 @@ install_tasks_file: "install.yml" configure_tasks_file: "configure.yml" +# Variables for MinIO deployment +minio_deployment_type: "single-node-multi-drive" # Options: single-node-single-drive, single-node-multi-drive, multi-node-multi-drive + +# General MinIO configuration +minio_version: "RELEASE.2024-08-01T00-00-00Z" +minio_port: 9000 +minio_access_key: "your-access-key" +minio_secret_key: "your-secret-key" + +# Single-node configurations +minio_single_node_drive: "/data/minio" + +# Multi-drive configurations (can be used for both single-node and multi-node setups) +minio_drives: + - "/data/minio1" + - "/data/minio2" + - "/data/minio3" + - "/data/minio4" + +# Multi-node configurations +minio_nodes: + - "node1.example.com" + - "node2.example.com" + - "node3.example.com" + + + From 0a7c6d3f9563ed7edf9eaab167bcf1ad99469c43 Mon Sep 17 00:00:00 2001 From: Sahil_Gupta <164473861+shishang1314@users.noreply.github.com> Date: Tue, 6 Aug 2024 11:15:48 +0530 Subject: [PATCH 07/16] Update main.yml --- minio_role/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minio_role/tasks/main.yml b/minio_role/tasks/main.yml index 2ce828a..c278b62 100644 --- a/minio_role/tasks/main.yml +++ b/minio_role/tasks/main.yml @@ -7,10 +7,10 @@ become: yes - name: Install MinIO - include_tasks: "{{ install_tasks_file }}" + include_tasks: "install.yml" - name: Configure MinIO - include_tasks: "{{ configure_tasks_file }}" + include_tasks: "configure.yml" - name: Include task variables From c71d13465b091fb7698cf6b0188b69fbe6fad8c4 Mon Sep 17 00:00:00 2001 From: Sahil_Gupta <164473861+shishang1314@users.noreply.github.com> Date: Tue, 6 Aug 2024 11:25:37 +0530 Subject: [PATCH 08/16] Update main.yml --- minio_role/tasks/main.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/minio_role/tasks/main.yml b/minio_role/tasks/main.yml index c278b62..0e85d75 100644 --- a/minio_role/tasks/main.yml +++ b/minio_role/tasks/main.yml @@ -1,10 +1,7 @@ --- # Tasks for Debian-based systems -- name: Update apt package list - ansible.builtin.apt: - update_cache: "{{ update_cache }}" - become: yes + - name: Install MinIO include_tasks: "install.yml" From 556f57b2af2b0f4d43843ab311338e64f32614a0 Mon Sep 17 00:00:00 2001 From: Sahil_Gupta <164473861+shishang1314@users.noreply.github.com> Date: Tue, 6 Aug 2024 11:26:05 +0530 Subject: [PATCH 09/16] Update install.yml --- minio_role/tasks/install.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/minio_role/tasks/install.yml b/minio_role/tasks/install.yml index e3d4900..6bb5067 100644 --- a/minio_role/tasks/install.yml +++ b/minio_role/tasks/install.yml @@ -1,6 +1,10 @@ --- # tasks file for minio_role - +- name: Update apt package list + ansible.builtin.apt: + update_cache: "{{ update_cache }}" + become: yes + - name: Download MinIO binary get_url: url: "{{ minio_download_url }}" From 92518f60298647b8596639734459d7c7a45877a7 Mon Sep 17 00:00:00 2001 From: Sahil_Gupta <164473861+shishang1314@users.noreply.github.com> Date: Tue, 6 Aug 2024 11:26:30 +0530 Subject: [PATCH 10/16] Update aws_ec2.yml --- aws_ec2.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/aws_ec2.yml b/aws_ec2.yml index 179234f..c2e077e 100644 --- a/aws_ec2.yml +++ b/aws_ec2.yml @@ -1,7 +1,3 @@ -# [webserver] - -# web01 ansible_host=ubuntu@13.124.155.20 ansible_private_key_file=/home/sahil/Downloads/minio.pem - --- plugin: aws_ec2 regions: @@ -13,4 +9,4 @@ filters: ansible_user: "ubuntu" host_key_checking: False -ansible_ssh_private_key_file: /home/sahil/downloads/minio.pem \ No newline at end of file +ansible_ssh_private_key_file: /home/sahil/downloads/minio.pem From e1dd4c410f58b4d6f6c5558afe9ca4a156a3681c Mon Sep 17 00:00:00 2001 From: Sahil_Gupta <164473861+shishang1314@users.noreply.github.com> Date: Tue, 6 Aug 2024 11:27:05 +0530 Subject: [PATCH 11/16] Update aws_ec2.yml --- aws_ec2.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/aws_ec2.yml b/aws_ec2.yml index c2e077e..24f12a8 100644 --- a/aws_ec2.yml +++ b/aws_ec2.yml @@ -3,10 +3,9 @@ plugin: aws_ec2 regions: - ap-northeast-2 - filters: tag:Name: minio - + ansible_user: "ubuntu" host_key_checking: False ansible_ssh_private_key_file: /home/sahil/downloads/minio.pem From 7f80687c84e8391b683eecf95f194eff548bf8ab Mon Sep 17 00:00:00 2001 From: Sahil_Gupta <164473861+shishang1314@users.noreply.github.com> Date: Tue, 6 Aug 2024 11:30:34 +0530 Subject: [PATCH 12/16] Update main.yml --- minio_role/vars/main.yml | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/minio_role/vars/main.yml b/minio_role/vars/main.yml index e06a59a..c029ec9 100644 --- a/minio_role/vars/main.yml +++ b/minio_role/vars/main.yml @@ -39,7 +39,6 @@ minio_service_dest: "/etc/systemd/system/minio.service" directory_mode: "0755" file_mode: "0644" - # Variables for installing MinIO # MinIO binary download URL @@ -49,17 +48,6 @@ minio_download_url: "https://dl.min.io/server/minio/release/linux-amd64/archive/ minio_deb_path: "/tmp/minio.deb" deb_file_mode: "0755" - -# Variables for Debian-based systems tasks - -# Update apt package list -update_cache: yes - -# File paths for tasks -install_tasks_file: "install.yml" -configure_tasks_file: "configure.yml" - - # Variables for MinIO deployment minio_deployment_type: "single-node-multi-drive" # Options: single-node-single-drive, single-node-multi-drive, multi-node-multi-drive @@ -79,11 +67,7 @@ minio_drives: - "/data/minio3" - "/data/minio4" -# Multi-node configurations -minio_nodes: - - "node1.example.com" - - "node2.example.com" - - "node3.example.com" + From 434740dba79098867dfe6dd8fbdd6f70b118360f Mon Sep 17 00:00:00 2001 From: shishang1314 Date: Tue, 6 Aug 2024 20:18:47 +0530 Subject: [PATCH 13/16] wq --- minio_role/defaults/main.yml | 4 +-- minio_role/tasks/configure.yml | 7 +++++ minio_role/tasks/install.yml | 6 +--- minio_role/tasks/main.yml | 26 +++++++++++----- minio_role/tasks/multi-node-multi-drive.yml | 8 +++++ .../tasks/setup_multi-node-multi-drive.yml | 30 ------------------- .../tasks/setup_single-node-multi-drive.yml | 29 ------------------ minio_role/tasks/single-node-multi-drive.yml | 11 +++++++ minio_role/tasks/single-node-single-drive.yml | 8 +++++ minio_role/vars/main.yml | 17 ++++++++++- playbook.yml | 7 +++-- 11 files changed, 76 insertions(+), 77 deletions(-) create mode 100644 minio_role/tasks/multi-node-multi-drive.yml delete mode 100644 minio_role/tasks/setup_multi-node-multi-drive.yml delete mode 100644 minio_role/tasks/setup_single-node-multi-drive.yml create mode 100644 minio_role/tasks/single-node-multi-drive.yml create mode 100644 minio_role/tasks/single-node-single-drive.yml diff --git a/minio_role/defaults/main.yml b/minio_role/defaults/main.yml index 6d194d7..72b6add 100644 --- a/minio_role/defaults/main.yml +++ b/minio_role/defaults/main.yml @@ -6,5 +6,5 @@ minio_data_dir: /data/minio minio_config_dir: /etc/minio minio_user: minio minio_group: minio -minio_access_key: "your-access-key" -minio_secret_key: "your-secret-key" +minio_access_key: "minio1234567890" +minio_secret_key: "1234567890minio" diff --git a/minio_role/tasks/configure.yml b/minio_role/tasks/configure.yml index cfa5841..1ece3a2 100644 --- a/minio_role/tasks/configure.yml +++ b/minio_role/tasks/configure.yml @@ -1,6 +1,13 @@ --- # tasks file for minio_role +#- name: Ensure MinIO service is running + # systemd: + # name: minio + # state: started + #enabled: yes + #become: yes + - name: Ensure minio group exists group: name: "{{ minio_group_name }}" diff --git a/minio_role/tasks/install.yml b/minio_role/tasks/install.yml index 6bb5067..e3d4900 100644 --- a/minio_role/tasks/install.yml +++ b/minio_role/tasks/install.yml @@ -1,10 +1,6 @@ --- # tasks file for minio_role -- name: Update apt package list - ansible.builtin.apt: - update_cache: "{{ update_cache }}" - become: yes - + - name: Download MinIO binary get_url: url: "{{ minio_download_url }}" diff --git a/minio_role/tasks/main.yml b/minio_role/tasks/main.yml index 0e85d75..404cd11 100644 --- a/minio_role/tasks/main.yml +++ b/minio_role/tasks/main.yml @@ -1,21 +1,31 @@ --- # Tasks for Debian-based systems - +- name: Update apt package list + ansible.builtin.apt: + update_cache: "{{ update_cache }}" + become: yes - name: Install MinIO include_tasks: "install.yml" - name: Configure MinIO - include_tasks: "configure.yml" + include_tasks: "{{ configure_tasks_file }}" - name: Include task variables include_vars: vars/main.yml - - -- name: Setup MinIO - include_tasks: "setup_{{ minio_deployment_type }}.yml" - - +- name: Ensure MinIO data directories exist + file: + path: "{{ item }}" + state: directory + owner: minio + group: minio + mode: '0755' + loop: "{{ minio_data_dirs[deployment_type] }}" + when: deployment_type in ['single-node-single-drive', 'single-node-multi-drive', 'multi-node-multi-drive'] + +- name: Start MinIO server with the chosen deployment type + include_tasks: "{{ deployment_type }}.yml" + when: deployment_type in ['single-node-single-drive', 'single-node-multi-drive', 'multi-node-multi-drive'] diff --git a/minio_role/tasks/multi-node-multi-drive.yml b/minio_role/tasks/multi-node-multi-drive.yml new file mode 100644 index 0000000..60aaba0 --- /dev/null +++ b/minio_role/tasks/multi-node-multi-drive.yml @@ -0,0 +1,8 @@ +--- +- name: Start MinIO server with multiple drives + command: "minio server {{ minio_data_dirs[deployment_type]|join(' ') }} --config-dir /etc/minio" + environment: + MINIO_ACCESS_KEY: "{{ minio_access_key }}" + MINIO_SECRET_KEY: "{{ minio_secret_key }}" + become: yes + become_user: minio_user diff --git a/minio_role/tasks/setup_multi-node-multi-drive.yml b/minio_role/tasks/setup_multi-node-multi-drive.yml deleted file mode 100644 index 3ce9c29..0000000 --- a/minio_role/tasks/setup_multi-node-multi-drive.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -# Tasks for setting up MinIO on multiple nodes with multiple drives - -- name: Create MinIO configuration directory - file: - path: /etc/minio - state: directory - mode: '0755' - owner: minio - group: minio - become: yes - -- name: Set up MinIO data directories - file: - path: "{{ item }}" - state: directory - mode: '0755' - owner: minio - group: minio - with_items: "{{ minio_drives }}" - become: yes - -- name: Start MinIO server in distributed mode - shell: | - minio server http://{{ minio_nodes[0] }}/{{ minio_drives[0] }} http://{{ minio_nodes[1] }}/{{ minio_drives[1] }} ... - become: yes - environment: - MINIO_ACCESS_KEY: "{{ minio_access_key }}" - MINIO_SECRET_KEY: "{{ minio_secret_key }}" - become: yes diff --git a/minio_role/tasks/setup_single-node-multi-drive.yml b/minio_role/tasks/setup_single-node-multi-drive.yml deleted file mode 100644 index 69e8639..0000000 --- a/minio_role/tasks/setup_single-node-multi-drive.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -# Tasks for setting up MinIO on a single node with multiple drives - -- name: Create MinIO configuration directory - file: - path: /etc/minio - state: directory - mode: '0755' - owner: minio - group: minio - become: yes - -- name: Set up MinIO data directories - file: - path: "{{ item }}" - state: directory - mode: '0755' - owner: minio - group: minio - with_items: "{{ minio_drives }}" - become: yes - -- name: Start MinIO server - shell: | - minio server {{ minio_drives | join(' ') }} - become: yes - environment: - MINIO_ACCESS_KEY: "{{ minio_access_key }}" - MINIO_SECRET_KEY: "{{ minio_secret_key }}" diff --git a/minio_role/tasks/single-node-multi-drive.yml b/minio_role/tasks/single-node-multi-drive.yml new file mode 100644 index 0000000..502e9b1 --- /dev/null +++ b/minio_role/tasks/single-node-multi-drive.yml @@ -0,0 +1,11 @@ +--- +- name: Start MinIO server with multiple drives + command: "minio server /data/minio1 /data/minio2 /data/minio3 /data/minio4 --config-dir /etc/minio" + environment: + MINIO_ACCESS_KEY: "{{ minio_access_key }}" + MINIO_SECRET_KEY: "{{ minio_secret_key }}" + systemd: + state: started + enabled: yes + become: yes + diff --git a/minio_role/tasks/single-node-single-drive.yml b/minio_role/tasks/single-node-single-drive.yml new file mode 100644 index 0000000..972ca28 --- /dev/null +++ b/minio_role/tasks/single-node-single-drive.yml @@ -0,0 +1,8 @@ +--- +- name: Start MinIO server with single drive + command: "minio server /data/minio1 --config-dir /etc/minio" + environment: + MINIO_ACCESS_KEY: "{{ minio_access_key }}" + MINIO_SECRET_KEY: "{{ minio_secret_key }}" + become: yes + become_user: minio_user diff --git a/minio_role/vars/main.yml b/minio_role/vars/main.yml index c029ec9..56b52fd 100644 --- a/minio_role/vars/main.yml +++ b/minio_role/vars/main.yml @@ -48,6 +48,17 @@ minio_download_url: "https://dl.min.io/server/minio/release/linux-amd64/archive/ minio_deb_path: "/tmp/minio.deb" deb_file_mode: "0755" + +# Variables for Debian-based systems tasks + +# Update apt package list +update_cache: yes + +# File paths for tasks +install_tasks_file: "install.yml" +configure_tasks_file: "configure.yml" + + # Variables for MinIO deployment minio_deployment_type: "single-node-multi-drive" # Options: single-node-single-drive, single-node-multi-drive, multi-node-multi-drive @@ -67,7 +78,11 @@ minio_drives: - "/data/minio3" - "/data/minio4" - +# Multi-node configurations +minio_nodes: + - "node1.example.com" + - "node2.example.com" + - "node3.example.com" diff --git a/playbook.yml b/playbook.yml index b9593dd..e4130b0 100644 --- a/playbook.yml +++ b/playbook.yml @@ -1,6 +1,9 @@ --- - - hosts: aws_ec2 + vars_prompt: + - name: "deployment_type" + prompt: "Which type of deployment do you want (single-node-single-drive, single-node-multi-drive, multi-node-multi-drive)?" + private: no + roles: - minio_role - From 57b825f182c049bbfc430a63942563669c7feb4c Mon Sep 17 00:00:00 2001 From: shishang1314 Date: Tue, 6 Aug 2024 16:40:28 +0530 Subject: [PATCH 14/16] wq --- minio_role/tasks/configure.yml | 9 ----- minio_role/tasks/install.yml | 15 ++++++-- minio_role/tasks/main.yml | 13 +------ minio_role/tasks/single-node-multi-drive.yml | 1 - minio_role/vars/main.yml | 38 +++++++++----------- 5 files changed, 31 insertions(+), 45 deletions(-) diff --git a/minio_role/tasks/configure.yml b/minio_role/tasks/configure.yml index 1ece3a2..9d51c26 100644 --- a/minio_role/tasks/configure.yml +++ b/minio_role/tasks/configure.yml @@ -1,13 +1,4 @@ --- -# tasks file for minio_role - -#- name: Ensure MinIO service is running - # systemd: - # name: minio - # state: started - #enabled: yes - #become: yes - - name: Ensure minio group exists group: name: "{{ minio_group_name }}" diff --git a/minio_role/tasks/install.yml b/minio_role/tasks/install.yml index e3d4900..5fcd58f 100644 --- a/minio_role/tasks/install.yml +++ b/minio_role/tasks/install.yml @@ -1,6 +1,9 @@ --- -# tasks file for minio_role - +- name: Update apt package list + ansible.builtin.apt: + update_cache: "{{ update_cache }}" + become: yes + - name: Download MinIO binary get_url: url: "{{ minio_download_url }}" @@ -12,3 +15,11 @@ apt: deb: "{{ minio_deb_path }}" become: yes + +- name: Ensure MinIO binary has execute permissions + file: + path: "{{ minio_deb_path }}" + mode: '0755' + owner: minio + group: minio + become: yes \ No newline at end of file diff --git a/minio_role/tasks/main.yml b/minio_role/tasks/main.yml index 404cd11..514d1c4 100644 --- a/minio_role/tasks/main.yml +++ b/minio_role/tasks/main.yml @@ -1,20 +1,9 @@ --- -# Tasks for Debian-based systems - -- name: Update apt package list - ansible.builtin.apt: - update_cache: "{{ update_cache }}" - become: yes - - name: Install MinIO include_tasks: "install.yml" - name: Configure MinIO - include_tasks: "{{ configure_tasks_file }}" - - -- name: Include task variables - include_vars: vars/main.yml + include_tasks: "configure.yml" - name: Ensure MinIO data directories exist file: diff --git a/minio_role/tasks/single-node-multi-drive.yml b/minio_role/tasks/single-node-multi-drive.yml index 502e9b1..97b275a 100644 --- a/minio_role/tasks/single-node-multi-drive.yml +++ b/minio_role/tasks/single-node-multi-drive.yml @@ -4,7 +4,6 @@ environment: MINIO_ACCESS_KEY: "{{ minio_access_key }}" MINIO_SECRET_KEY: "{{ minio_secret_key }}" - systemd: state: started enabled: yes become: yes diff --git a/minio_role/vars/main.yml b/minio_role/vars/main.yml index 56b52fd..ab85b8a 100644 --- a/minio_role/vars/main.yml +++ b/minio_role/vars/main.yml @@ -59,30 +59,26 @@ install_tasks_file: "install.yml" configure_tasks_file: "configure.yml" -# Variables for MinIO deployment -minio_deployment_type: "single-node-multi-drive" # Options: single-node-single-drive, single-node-multi-drive, multi-node-multi-drive - # General MinIO configuration minio_version: "RELEASE.2024-08-01T00-00-00Z" minio_port: 9000 -minio_access_key: "your-access-key" -minio_secret_key: "your-secret-key" - -# Single-node configurations -minio_single_node_drive: "/data/minio" - -# Multi-drive configurations (can be used for both single-node and multi-node setups) -minio_drives: - - "/data/minio1" - - "/data/minio2" - - "/data/minio3" - - "/data/minio4" - -# Multi-node configurations -minio_nodes: - - "node1.example.com" - - "node2.example.com" - - "node3.example.com" +minio_access_key: "minio1234567890" +minio_secret_key: "1234567890minio" + +minio_data_dirs: + single-node-single-drive: + - /data/minio1 + single-node-multi-drive: + - /data/minio1 + - /data/minio2 + - /data/minio3 + - /data/minio4 + multi-node-multi-drive: + - /data/minio1 + - /data/minio2 + - /data/minio3 + - /data/minio4 + From 77145bd9b22cf291b0f7ebdf14244fea5ed08302 Mon Sep 17 00:00:00 2001 From: shishang1314 Date: Mon, 12 Aug 2024 14:57:26 +0530 Subject: [PATCH 15/16] standalone --- minio_role/tasks/configure.yml | 16 ++++++++++++++++ minio_role/tasks/main.yml | 12 ------------ minio_role/tasks/single-node-single-drive.yml | 4 ++-- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/minio_role/tasks/configure.yml b/minio_role/tasks/configure.yml index 9d51c26..f09a69c 100644 --- a/minio_role/tasks/configure.yml +++ b/minio_role/tasks/configure.yml @@ -71,3 +71,19 @@ dest: "{{ minio_service_dest }}" mode: "{{ file_mode }}" become: yes + +- name: Ensure MinIO data directories exist + file: + path: "{{ item }}" + state: directory + owner: minio + group: minio + mode: '0755' + loop: "{{ minio_data_dirs[deployment_type] }}" + when: deployment_type in ['single-node-single-drive', 'single-node-multi-drive', 'multi-node-multi-drive'] + + +- name: Start MinIO server with the chosen deployment type + include_tasks: "{{ deployment_type }}.yml" + when: deployment_type in ['single-node-single-drive', 'single-node-multi-drive', 'multi-node-multi-drive'] + \ No newline at end of file diff --git a/minio_role/tasks/main.yml b/minio_role/tasks/main.yml index 514d1c4..84ef559 100644 --- a/minio_role/tasks/main.yml +++ b/minio_role/tasks/main.yml @@ -5,16 +5,4 @@ - name: Configure MinIO include_tasks: "configure.yml" -- name: Ensure MinIO data directories exist - file: - path: "{{ item }}" - state: directory - owner: minio - group: minio - mode: '0755' - loop: "{{ minio_data_dirs[deployment_type] }}" - when: deployment_type in ['single-node-single-drive', 'single-node-multi-drive', 'multi-node-multi-drive'] -- name: Start MinIO server with the chosen deployment type - include_tasks: "{{ deployment_type }}.yml" - when: deployment_type in ['single-node-single-drive', 'single-node-multi-drive', 'multi-node-multi-drive'] diff --git a/minio_role/tasks/single-node-single-drive.yml b/minio_role/tasks/single-node-single-drive.yml index 972ca28..863c509 100644 --- a/minio_role/tasks/single-node-single-drive.yml +++ b/minio_role/tasks/single-node-single-drive.yml @@ -1,8 +1,8 @@ --- - name: Start MinIO server with single drive - command: "minio server /data/minio1 --config-dir /etc/minio" + command: "minio server /data/minio1 " environment: MINIO_ACCESS_KEY: "{{ minio_access_key }}" MINIO_SECRET_KEY: "{{ minio_secret_key }}" become: yes - become_user: minio_user + From c765f0b620319b790c656ea858e436409bd8943b Mon Sep 17 00:00:00 2001 From: shishang1314 Date: Mon, 12 Aug 2024 16:12:59 +0530 Subject: [PATCH 16/16] standalone --- minio_role/tasks/configure.yml | 2 ++ minio_role/tasks/install.yml | 62 +++++++++++++++++++++++++++++++++- minio_role/vars/main.yml | 23 ++++++++++--- 3 files changed, 82 insertions(+), 5 deletions(-) diff --git a/minio_role/tasks/configure.yml b/minio_role/tasks/configure.yml index f09a69c..4c13e10 100644 --- a/minio_role/tasks/configure.yml +++ b/minio_role/tasks/configure.yml @@ -32,6 +32,8 @@ name: "{{ minio_group_name }}" state: present become: yes + when: ansible_os_family in ['RedHat', 'Debian', 'CentOS'] + - name: Create MinIO user user: diff --git a/minio_role/tasks/install.yml b/minio_role/tasks/install.yml index 5fcd58f..776a6d7 100644 --- a/minio_role/tasks/install.yml +++ b/minio_role/tasks/install.yml @@ -1,4 +1,56 @@ --- + +- name: Install required packages on RedHat-based systems + yum: + name: + - wget + - unzip + state: present + when: ansible_os_family == "RedHat" + +- name: Install required packages on Debian-based systems + apt: + name: + - wget + - unzip + state: present + update_cache: yes + when: ansible_os_family == "Debian" + become: yes + +- name: Install required packages on CentOS + yum: + name: + - wget + - unzip + state: present + when: ansible_distribution == "CentOS" + become: yes + +- name: Download MinIO binary + get_url: + url: "https://dl.min.io/server/minio/release/linux-amd64/minio" + dest: "/usr/local/bin/minio" + mode: '0755' + +- name: Create MinIO service file on RedHat-based systems + template: + src: "minio.service.j2" + dest: "/etc/systemd/system/minio.service" + when: ansible_os_family == "RedHat" + +- name: Create MinIO service file on Debian-based systems + template: + src: "minio.service.j2" + dest: "/etc/systemd/system/minio.service" + when: ansible_os_family == "Debian" + +- name: Create MinIO service file on CentOS + template: + src: "minio.service.j2" + dest: "/etc/systemd/system/minio.service" + when: ansible_distribution == "CentOS" + - name: Update apt package list ansible.builtin.apt: update_cache: "{{ update_cache }}" @@ -22,4 +74,12 @@ mode: '0755' owner: minio group: minio - become: yes \ No newline at end of file + become: yes + + + + + + + + diff --git a/minio_role/vars/main.yml b/minio_role/vars/main.yml index ab85b8a..c4b0d42 100644 --- a/minio_role/vars/main.yml +++ b/minio_role/vars/main.yml @@ -79,10 +79,25 @@ minio_data_dirs: - /data/minio3 - /data/minio4 - - - - +# OS specific +minio_user: "minio" +minio_group: "minio" + +minio_packages: + RedHat: + - wget + - unzip + Debian: + - wget + - unzip + CentOS: + - wget + - unzip + +minio_service: + RedHat: "minio" + Debian: "minio" + CentOS: "minio"