-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuser.yaml
58 lines (49 loc) · 1.63 KB
/
user.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
---
- name: Install RabbitMQ and Create Secure User
hosts: localhost
become: true
vars:
rabbitmq_user: "myuser"
password_file: "/tmp/rabbitmq_password.txt"
tasks:
- name: Install required packages
apt:
name:
- openssl
- rabbitmq-server
state: present
update_cache: true
- name: Ensure RabbitMQ service is running
systemd:
name: rabbitmq-server
state: started
enabled: true
- name: Generate secure password using OpenSSL
shell: "openssl rand -base64 20"
register: generated_password
changed_when: false
- name: Save password to file
copy:
content: |
Username: {{ rabbitmq_user }}
Password: {{ generated_password.stdout }}
dest: "{{ password_file }}"
mode: '0600'
owner: root
group: root
- name: Check if RabbitMQ user exists
command: rabbitmqctl list_users
register: rabbitmq_users
changed_when: false
- name: Create RabbitMQ user (if not exists)
command: rabbitmqctl add_user "{{ rabbitmq_user }}" "{{ generated_password.stdout }}"
when: "'{{ rabbitmq_user }}' not in rabbitmq_users.stdout"
- name: Set permissions for RabbitMQ user
command: rabbitmqctl set_permissions -p / "{{ rabbitmq_user }}" ".*" ".*" ".*"
- name: Set user tags (administrator)
command: rabbitmqctl set_user_tags "{{ rabbitmq_user }}" administrator
- name: Mark user creation done (to avoid duplicate execution)
file:
path: "/var/lib/rabbitmq/.rabbitmq_user_{{ rabbitmq_user }}"
state: touch
mode: '0600'