Skip to content

Commit 1dffd23

Browse files
committed
[ansible/mordred] Use the user with ID 1000
This commit updates tasks to apply permissions using UID 1000 directly. This ensures consistency across different cloud providers where the default user (e.g.,'admin' in AWS) might already occupy UID 1000. Signed-off-by: Quan Zhou <quan@bitergia.com>
1 parent aa3c93e commit 1dffd23

6 files changed

Lines changed: 59 additions & 20 deletions

File tree

ansible/roles/mordred/defaults/main.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,8 @@ mordred_aliases_url: https://raw.githubusercontent.com/chaoss/grimoirelab-sirmor
3737
mariadb_hosts: "{{ ansible_default_ipv4.address if 'all_in_one' in groups else hostvars[(groups['mariadb'][0])].ansible_default_ipv4.address }}"
3838
opensearch_host: "{{ ansible_default_ipv4.address if 'all_in_one' in groups else hostvars[(groups['opensearch_manager'][0])].ansible_default_ipv4.address }}"
3939

40+
grimoire_user: grimoire
41+
grimoire_group: grimoire
42+
4043
docker_network_name: bap_network
4144
docker_log_max_size: 500m

ansible/roles/mordred/tasks/configure.yml

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
file:
2222
path: "{{ item }}"
2323
state: directory
24-
owner: grimoire
25-
group: grimoire
24+
owner: "{{ grimoire_user }}"
25+
group: "{{ grimoire_group }}"
2626
mode: 0750
2727
recurse: true
2828
with_items:
@@ -36,12 +36,26 @@
3636
path: "{{ mordred_ssh_dir }}/id_rsa"
3737
register: sshkey
3838

39+
- name: Create SSH key pair
40+
openssh_keypair:
41+
path: "/home/{{ grimoire_user }}/.ssh/id_rsa"
42+
type: rsa
43+
size: 4096
44+
owner: "{{ grimoire_user }}"
45+
group: "{{ grimoire_group }}"
46+
mode: '0600'
47+
state: present
48+
when:
49+
- not sshkey.stat.exists
50+
- mordred_ssh_key is not defined
51+
- grimoire_user_ssh_key is defined and not grimoire_user_ssh_key
52+
3953
- name: Copy a custom SSH key pair
4054
copy:
4155
src: "{{ item.src }}"
4256
dest: "{{ item.dest }}"
43-
owner: grimoire
44-
group: grimoire
57+
owner: "{{ grimoire_user }}"
58+
group: "{{ grimoire_group }}"
4559
mode: "{{ item.mode }}"
4660
loop:
4761
- src: "{{ mordred_ssh_key.private }}"
@@ -58,13 +72,13 @@
5872
copy:
5973
src: "{{ item.src }}"
6074
dest: "{{ item.dest }}"
61-
owner: grimoire
62-
group: grimoire
75+
owner: "{{ grimoire_user }}"
76+
group: "{{ grimoire_group }}"
6377
remote_src: true
6478
loop:
65-
- src: "/home/grimoire/.ssh/id_rsa"
79+
- src: "/home/{{ grimoire_user }}/.ssh/id_rsa"
6680
dest: "{{ mordred_ssh_dir }}/id_rsa"
67-
- src: "/home/grimoire/.ssh/id_rsa.pub"
81+
- src: "/home/{{ grimoire_user }}/.ssh/id_rsa.pub"
6882
dest: "{{ mordred_ssh_dir }}/id_rsa.pub"
6983
when:
7084
- not sshkey.stat.exists
@@ -109,7 +123,7 @@
109123

110124
- name: Checkout mordred setups repo
111125
become: true
112-
become_user: grimoire
126+
become_user: "{{ grimoire_user }}"
113127
git:
114128
repo: "{{ mordred_setups_repo_url }}"
115129
dest: "{{ mordred_setups_dir }}"

ansible/roles/mordred/tasks/configure_instance.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
file:
1111
state: directory
1212
path: "{{ item }}"
13-
owner: grimoire
14-
group: grimoire
13+
owner: "{{ grimoire_user }}"
14+
group: "{{ grimoire_group }}"
1515
mode: '0774'
1616
with_items:
1717
- "{{ instance_dir }}/conf"
@@ -34,15 +34,15 @@
3434
copy:
3535
src: "/tmp/{{ instance.tenant }}_aliases.json"
3636
dest: "{{ instance_dir }}/conf/aliases.json"
37-
owner: grimoire
38-
group: grimoire
37+
owner: "{{ grimoire_user }}"
38+
group: "{{ grimoire_group }}"
3939
mode: '0640'
4040
delegate_to: "{{ groups['all_in_one'][0] | default(groups['mordred'][instance.mordred.host]) }}"
4141
run_once: true
4242

4343
- name: "Checkout {{ instance.project }} sources repo"
4444
become: true
45-
become_user: grimoire
45+
become_user: "{{ grimoire_user }}"
4646
git:
4747
repo: "{{ instance.mordred.sources_repository }}"
4848
dest: "{{ instance_dir }}/sources"
@@ -55,8 +55,8 @@
5555
file:
5656
state: directory
5757
path: "{{ instance_dir }}/sources"
58-
owner: grimoire
59-
group: grimoire
58+
owner: "{{ grimoire_user }}"
59+
group: "{{ grimoire_group }}"
6060
mode: '0774'
6161
delegate_to: "{{ groups['all_in_one'][0] | default(groups['mordred'][instance.mordred.host]) }}"
6262
run_once: true

ansible/roles/mordred/tasks/main.yml

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,38 @@
11
---
22

3+
- name: Get the user with UID 1000
4+
command: "id -nu 1000"
5+
register: current_uid_1000_user
6+
failed_when: false
7+
changed_when: false
8+
9+
- name: Show the user with UID 1000
10+
debug:
11+
msg: "The UID 1000 is owned by user: {{ current_uid_1000_user.stdout }}"
12+
when: current_uid_1000_user.rc == 0
13+
14+
- name: Set grimoire_user and grimoire_group facts based on UID 1000 ownership
15+
set_fact:
16+
grimoire_user: "{{ current_uid_1000_user.stdout }}"
17+
grimoire_group: 1000
18+
grimoire_user_ssh_key: false
19+
when: current_uid_1000_user.rc == 0
20+
321
- name: Create group grimoire
422
group:
5-
name: grimoire
23+
name: "{{ grimoire_group }}"
624
state: present
25+
when: current_uid_1000_user.rc != 0
726

827
- name: Create user grimoire
928
user:
10-
name: grimoire
11-
groups: grimoire
29+
name: "{{ grimoire_user }}"
30+
groups: "{{ grimoire_group }}"
31+
uid: 1000
1232
generate_ssh_key: yes
1333
ssh_key_bits: 4096
1434
ssh_key_file: .ssh/id_rsa
35+
when: current_uid_1000_user.rc != 0
1536

1637
- name: Configure Mordred
1738
import_tasks: configure.yml
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
[safe]
2+
directory = {{ mordred_setups_dir }}
23
{% for instance in instances %}
34
directory = {{ mordred_instances_dir }}/{{ instance.project }}/sources
45
{% endfor %}

ansible/roles/mordred/templates/mordred_logrotate.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
notifempty
88
delaycompress
99
compress
10-
create 0640 grimoire grimoire
10+
create 0640 {{ grimoire_user }} {{ grimoire_group }}
1111
copytruncate
1212
}

0 commit comments

Comments
 (0)