ansible-playbook容器化部署minio

ansible-playbook容器化部署minio_第1张图片

1、部署

(1)获取镜像

[root@home ~]# docker pull quay.io/minio/minio
Using default tag: latest
latest: Pulling from minio/minio
d46336f50433: Pull complete
be961ec68663: Pull complete
5220c5a80df8: Pull complete
e4c80747a7f0: Pull complete
16db746a03a4: Pull complete
ddd9879fbeae: Pull complete
33568a462f9e: Pull complete
Digest: sha256:bb08b6091964a2e17a9b8b12f6bd9ba534a10e5c630d699ab5297c741dcdfce6
Status: Downloaded newer image for quay.io/minio/minio:latest
quay.io/minio/minio:latest

(2)编写 ansible playbook

---
- hosts: home
  remote_user: root
  become: yes
  gather_facts: no
  vars:
    container_name: "minio"
    container_image: "quay.io/minio/minio"
    container_wdir: "/data/sdb1/container/{{ container_name }}.9000"

  tasks:
    - name: create wdir
      file:
        path: "{{ item }}"
        state: directory
      with_items:
        - "{{ container_wdir }}"

    - name: remove container
      docker_container:
        name: "{{ container_name }}"
        state: absent
        container_default_behavior: no_defaults

    # docker run \
    #   -p 9000:9000 \
    #   -p 9001:9001 \
    #   -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \
    #   -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
    #   quay.io/minio/minio server /data --console-address ":9001"

    - name: create container
      docker_container:
        name: "{{ container_name }}"
        image: "{{ container_image }}"
        container_default_behavior: no_defaults
        volumes:
          - "{{ container_wdir }}/data:/data"
        ports:
          - "9000:9000"
          - "9001:9001"
        env:
          TZ: 'Asia/Shanghai'
          MINIO_ROOT_USER: 'AKIAIOSFODNN7EXAMPLE'
          MINIO_ROOT_PASSWORD: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
        command: server /data --console-address ":9001"

(3)运行

ansible-playbook auto.yml -i …/hosts.yml -e ‘ansible_python_interpreter=/usr/bin/python3’

auto with ansible

PLAY [home] ********************************************************************

TASK [create wdir] *************************************************************
changed: [192.168.1.100] => (item=/data/sdb1/container/minio.9000)

TASK [remove container] ********************************************************
ok: [192.168.1.100]

TASK [create container] ********************************************************
changed: [192.168.1.100]

PLAY RECAP *********************************************************************
192.168.1.100 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

cleanup
[Finished in 15.3s]

2、访问控制台

(1)登录

http://home:9001/login

输入 playbook 中的账户、密码:

账户:AKIAIOSFODNN7EXAMPLE)

密码:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

(2)主界面

登录后可以看到 Dashboard 的展示,通用状态(General Status)里面显示了:

所有桶(ALL BUCKETS)、用量(USAGE)、总对象数(TOTAL OBJECTS)和服务器数(SERVERS)。

(3)服务器信息

服务器显示当前总计一个服务器:Server 1。

服务器地址为 172.17.0.2:9000

有一块硬盘(Drives)、一个网络(Network),已上线 21 分钟,版本为:2021-12-10T23:03:39Z

(4)磁盘信息

总计就一块磁盘,容量(Capacity)为 5.5TB,已使用(Used)23GB,可用(Available)5.4TB。

3、后记

本次简单的通过 Ansible 部署了一个单容器 MinIO 服务器。

并登录了控制台查看了一下服务器和磁盘的配置信息。

后续写一些文章,研究一下 MinIO 的技术细节,以及使用 Python 操作一下 MinIO。

你可能感兴趣的:(自动化监控,容器,运维,docker)