66 lines
1.9 KiB
YAML
66 lines
1.9 KiB
YAML
---
|
|
- name: Deploy MinIO Infrastructure on Utility VM
|
|
hosts: utility.lab.local
|
|
gather_facts: true
|
|
become: false
|
|
|
|
tasks:
|
|
- name: Install Podman and rootless container dependencies
|
|
become: true
|
|
ansible.builtin.package:
|
|
name:
|
|
- podman
|
|
- uidmap
|
|
- dbus-user-session
|
|
state: present
|
|
|
|
- name: Create MinIO directory structures
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: "{{ admin_user }}"
|
|
group: "{{ admin_user }}"
|
|
mode: "0755"
|
|
loop:
|
|
- "/home/{{ admin_user }}/containers/minio"
|
|
- "{{ minio_data_dir }}"
|
|
|
|
- name: Deploy MinIO Systemd Service
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: "./templates/minio.service.j2"
|
|
dest: "/etc/systemd/system/minio.service"
|
|
mode: "0644"
|
|
|
|
- name: Start and enable MinIO service
|
|
become: true
|
|
ansible.builtin.systemd_service:
|
|
name: minio.service
|
|
state: restarted
|
|
enabled: true
|
|
daemon_reload: true
|
|
|
|
- name: Wait for MinIO API to be ready
|
|
ansible.builtin.wait_for:
|
|
port: 9000
|
|
delay: 2
|
|
timeout: 30
|
|
|
|
- name: Install MinIO client (mc)
|
|
become: true
|
|
ansible.builtin.get_url:
|
|
url: "https://dl.min.io/client/mc/release/linux-amd64/mc"
|
|
dest: "/usr/local/bin/mc"
|
|
mode: "0755"
|
|
|
|
- name: Configure mc local alias
|
|
ansible.builtin.command:
|
|
cmd: "/usr/local/bin/mc alias set localhttp http://localhost:9000 {{ minio_root_user }} {{ minio_root_password }}"
|
|
changed_when: false
|
|
|
|
- name: Create 'terraform-state' bucket if it doesn't exist
|
|
ansible.builtin.command:
|
|
cmd: "/usr/local/bin/mc mb --ignore-existing localhttp/terraform-state"
|
|
register: mb_result
|
|
changed_when: "'Bucket created successfully' in mb_result.stdout"
|