mirror of
https://github.com/rustfs/rustfs.git
synced 2026-01-17 09:40:32 +00:00
169 lines
4.2 KiB
YAML
169 lines
4.2 KiB
YAML
---
|
|
- name: Prepare for RustFS installation
|
|
hosts: rustfs
|
|
become: yes
|
|
vars:
|
|
ansible_python_interpreter: /usr/bin/python3
|
|
remote_user: root
|
|
|
|
tasks:
|
|
- name: Create Workspace
|
|
file:
|
|
path: /opt/rustfs
|
|
state: directory
|
|
mode: '0755'
|
|
register: create_dir_result
|
|
|
|
- name: Dir Creation Result Check
|
|
debug:
|
|
msg: "RustFS dir created successfully"
|
|
when: create_dir_result.changed
|
|
|
|
- name: Modify Target Server's hosts file
|
|
blockinfile:
|
|
path: /etc/hosts
|
|
block: |
|
|
127.0.0.1 localhost
|
|
172.20.92.199 rustfs-node1
|
|
172.20.92.200 rustfs-node2
|
|
172.20.92.201 rustfs-node3
|
|
172.20.92.202 rustfs-node4
|
|
|
|
- name: Create rustfs group
|
|
group:
|
|
name: rustfs
|
|
system: yes
|
|
state: present
|
|
|
|
- name: Create rustfs user
|
|
user:
|
|
name: rustfs
|
|
shell: /bin/bash
|
|
system: yes
|
|
create_home: no
|
|
group: rustfs
|
|
state: present
|
|
|
|
- name: Get rustfs user id
|
|
command: id -u rustfs
|
|
register: rustfs_uid
|
|
changed_when: false
|
|
ignore_errors: yes
|
|
|
|
- name: Check rustfs user id
|
|
debug:
|
|
msg: "rustfs uid is {{ rustfs_uid.stdout }}"
|
|
|
|
- name: Create volume dir
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: rustfs
|
|
group: rustfs
|
|
mode: '0755'
|
|
loop:
|
|
- /data/rustfs0
|
|
- /data/rustfs1
|
|
- /data/rustfs2
|
|
- /data/rustfs3
|
|
- /var/logs/rustfs
|
|
|
|
- name: Install RustFS
|
|
hosts: rustfs
|
|
become: yes
|
|
vars:
|
|
ansible_python_interpreter: /usr/bin/python3
|
|
install_script_url: "https://rustfs.com/install_rustfs.sh"
|
|
install_script_tmp: "/opt/rustfs/install_rustfs.sh"
|
|
tags: rustfs_install
|
|
|
|
tasks:
|
|
- name: Prepare configuration file
|
|
copy:
|
|
dest: /etc/default/rustfs
|
|
content: |
|
|
RUSTFS_ACCESS_KEY=rustfsadmin
|
|
RUSTFS_SECRET_KEY=rustfsadmin
|
|
RUSTFS_VOLUMES="http://rustfs-node{1...4}:9000/data/rustfs{0...3}"
|
|
RUSTFS_ADDRESS=":9000"
|
|
RUSTFS_CONSOLE_ENABLE=true
|
|
RUST_LOG=error
|
|
RUSTFS_OBS_LOG_DIRECTORY="/var/logs/rustfs/"
|
|
RUSTFS_EXTERNAL_ADDRESS=0.0.0.0:9000
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
|
|
- name: Install unzip
|
|
apt:
|
|
name: unzip
|
|
state: present
|
|
update_cache: yes
|
|
|
|
- name: Download the rustfs install script
|
|
get_url:
|
|
url: "{{ install_script_url }}"
|
|
dest: "{{ install_script_tmp }}"
|
|
mode: '0755'
|
|
|
|
- name: Run rustfs installation script
|
|
expect:
|
|
command: bash "{{install_script_tmp}}"
|
|
responses:
|
|
'.*Enter your choice.*': "1\n"
|
|
'.*Please enter RustFS service port.*': "9000\n"
|
|
'.*Please enter RustFS console port.*': "9001\n"
|
|
'.*Please enter data storage directory.*': "http://rustfs-node{1...4}:9000/data/rustfs{0...3}\n"
|
|
timeout: 300
|
|
register: rustfs_install_result
|
|
tags:
|
|
- rustfs_install
|
|
|
|
- name: Debug installation output
|
|
debug:
|
|
var: rustfs_install_result.stdout_lines
|
|
|
|
- name: Installation confirmation
|
|
command: rustfs --version
|
|
register: rustfs_version
|
|
changed_when: false
|
|
failed_when: rustfs_version.rc != 0
|
|
|
|
- name: Show rustfs version
|
|
debug:
|
|
msg: "RustFS version is {{ rustfs_version.stdout }}"
|
|
|
|
- name: Uninstall RustFS
|
|
hosts: rustfs
|
|
become: yes
|
|
vars:
|
|
install_script_tmp: /opt/rustfs/install_rustfs.sh
|
|
ansible_python_interpreter: /usr/bin/python3
|
|
tags: rustfs_uninstall
|
|
|
|
tasks:
|
|
- name: Run rustfs uninstall script
|
|
expect:
|
|
command: bash "{{ install_script_tmp }}"
|
|
responses:
|
|
'Enter your choice.*': "2\n"
|
|
'Are you sure you want to uninstall RustFS.*': "y\n"
|
|
timeout: 300
|
|
register: rustfs_uninstall_result
|
|
tags: rustfs_uninstall
|
|
|
|
- name: Debug uninstall output
|
|
debug:
|
|
var: rustfs_uninstall_result.stdout_lines
|
|
|
|
- name: Delete data dir
|
|
file:
|
|
path: "{{ item }}"
|
|
state: absent
|
|
loop:
|
|
- /data/rustfs0
|
|
- /data/rustfs1
|
|
- /data/rustfs2
|
|
- /data/rustfs3
|
|
- /var/logs/rustfs
|