Skip to content

Commit 52918a1

Browse files
committed
fix templates variables #6
1 parent a093460 commit 52918a1

13 files changed

+59
-38
lines changed

Diff for: molecule/default/converge.yml

+8
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@
77
- role: claranet.users
88
vars:
99
users:
10+
root:
11+
groups:
12+
- adm
13+
profile:
14+
- export LANG=POSIX
15+
- export LC_ALL=en_US
16+
1017
claranet1:
1118
home: /home/claranet1
1219
group: claranet1
@@ -26,6 +33,7 @@
2633
-----BEGIN OPENSSH PRIVATE KEY-----
2734
xxxprivate
2835
-----END OPENSSH PRIVATE KEY-----
36+
2937
claranet2:
3038
group: adm
3139
groups:

Diff for: molecule/default/tests/test_default.py

+23
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,29 @@ def test_vim_version(host):
1313
assert command.rc == 0
1414

1515

16+
def test_root_user(host):
17+
user = host.user("root")
18+
assert user.exists
19+
assert user.shell == "/bin/bash"
20+
assert user.home == f"/{user.name}"
21+
assert user.group == "root"
22+
assert "adm" in user.groups
23+
24+
25+
def test_root_profile_file(host):
26+
user_name = "root"
27+
file_name = f"/{user_name}/.profile"
28+
file = host.file(file_name)
29+
assert file.exists
30+
assert file.is_file
31+
assert file.user == "root"
32+
assert file.group == "root"
33+
assert file.mode == 0o644
34+
assert file.contains("\nreadonly HISTFILE\n")
35+
assert file.contains("\nexport SHELL=/bin/bash\n")
36+
assert file.contains("\nexport LANG=POSIX\n")
37+
38+
1639
def test_claranet1_user(host):
1740
user = host.user("claranet1")
1841
assert user.exists

Diff for: tasks/configure_bash.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
owner: "{{ item.key }}"
66
group: "{{ item.value.group | default(item.key) }}"
77
mode: 0600
8-
when: "'bashrc' in item.value"
8+
when: (item.value.bashrc is defined and item.value.bashrc|length>0) or users_default_bashrc|length>0
99

1010
- name: "configure_bash | include hardening.yml"
1111
include_tasks: hardening.yml

Diff for: tasks/configure_ssh.yml

+9-13
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
group: "{{ item.value.group | default(item.key) }}"
77
mode: 0700
88
state: directory
9-
when: ("'authorized_keys' in item.value") or
10-
("'ssh_config' in item.value") or
11-
("'ssh_keys' in item.value")
9+
when: item.value.authorized_keys is defined or
10+
item.value.ssh_config is defined or
11+
item.value.ssh_keys is defined
1212

1313
- name: "configure_ssh | ~{{ item.key }}/.ssh/authorized_keys"
1414
template:
@@ -17,7 +17,7 @@
1717
owner: "{{ item.key }}"
1818
group: "{{ item.value.group | default(item.key) }}"
1919
mode: 0600
20-
when: "'authorized_keys' in item.value"
20+
when: item.value.authorized_keys is defined
2121

2222
- name: "configure_ssh | ~{{ item.key }}/.ssh/config"
2323
template:
@@ -26,7 +26,7 @@
2626
owner: "{{ item.key }}"
2727
group: "{{ item.value.group | default(item.key) }}"
2828
mode: 0600
29-
when: "'ssh_config' in item.value"
29+
when: item.value.ssh_config is defined
3030

3131
- name: "configure_ssh | adding a public key to ssh folder for ~{{ item.key }}"
3232
copy:
@@ -35,12 +35,10 @@
3535
owner: "{{ item.key }}"
3636
group: "{{ item.value.group | default(item.key) }}"
3737
mode: 0600
38-
loop: "{{ item.value.ssh_keys | dict2items }}"
38+
loop: "{{ item.value.ssh_keys | default({}) | dict2items }}"
3939
loop_control:
4040
loop_var: ssh_keys
41-
when:
42-
- "'ssh_keys' in item.value"
43-
- "'public' in ssh_keys.value"
41+
when: ssh_keys.value.public is defined
4442

4543
- name: "configure_ssh | adding a private key to ssh folder for ~{{ item.key }}"
4644
copy:
@@ -49,9 +47,7 @@
4947
owner: "{{ item.key }}"
5048
group: "{{ item.value.group | default(item.key) }}"
5149
mode: 0600
52-
loop: "{{ item.value.ssh_keys | dict2items }}"
50+
loop: "{{ item.value.ssh_keys | default({}) | dict2items }}"
5351
loop_control:
5452
loop_var: ssh_keys
55-
when:
56-
- "'ssh_keys' in item.value"
57-
- "'private' in ssh_keys.value"
53+
when: ssh_keys.value.private is defined

Diff for: tasks/configure_vim.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
owner: "{{ item.key }}"
77
group: "{{ item.value.group | default(item.key) }}"
88
mode: 0600
9-
when: "'vimrc' in item.value"
9+
when: (item.value.vimrc is defined and item.value.vimrc|length>0) or users_default_vimrc|length>0

Diff for: tasks/create_groups.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
- name: "create_groups | create group {{ item.value.group }}"
2+
- name: "create_groups | create group {{ item.value.group | default('') }}"
33
group:
44
name: "{{ item.value.group }}"
55
gid: "{{ item.value.gid | default(omit) }}"
6-
when: "'group' in item.value"
6+
when: item.value.group is defined

Diff for: tasks/create_users.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
append: "{{ item.value.append | default(true if item.value.groups|default([])|length > 0 else omit) }}"
1111
shell: "{{ item.value.shell | default('/bin/bash') }}"
1212
createhome: "{{ item.value.createhome | default(true) }}"
13-
home: "{{ item.value.home | default('/home/' + item.key) }}"
13+
home: "{{ '/root' if item.key == 'root' else (item.value.home | default('/home/' + item.key)) }}"
1414
password: "{{ item.value.password | default('*') }}"
1515
uid: "{{ item.value.uid | default(omit) }}"
1616
group: "{{ item.value.group | default(omit) }}"

Diff for: tasks/hardening.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,5 @@
3737
group: "root"
3838
mode: 0644
3939
when:
40-
- (item.value|selectattr("profile", "defined")|list|length > 0) or (users_default_profile|length > 0)
40+
- (item.value.profile is defined and item.value.profile|length>0) or users_default_profile|length>0
4141
- _users_status == "set_profile"

Diff for: templates/users/authorized_keys.j2

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
# {{ ansible_managed }}
33
#
44

5-
{% for key in item.value.authorized_keys -%}
5+
{% for key in item.value.authorized_keys %}
66
{{key}}
7-
{% endfor -%}
7+
{% endfor %}

Diff for: templates/users/bashrc.j2

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
# {{ ansible_managed }}
33
#
44

5-
{% for line in users_default_bashrc %}
5+
{% for line in users_default_bashrc|mandatory %}
66
{{ line }}
77
{% endfor %}
88

9-
{%- if "bashrc" in item.value.keys() %}
10-
{%- for line in item.value.bashrc %}
9+
{% for line in item.value.bashrc|default([]) %}
1110
{{ line }}
1211
{% endfor %}
13-
{%- endif %}

Diff for: templates/users/profile.j2

+3-5
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,10 @@ if [ -d "$HOME/.local/bin" ] ; then
3030
PATH="$HOME/.local/bin:$PATH"
3131
fi
3232

33-
{%- for line in users_default_profile %}
33+
{% for line in users_default_profile|mandatory %}
3434
{{ line }}
35-
{%- endfor %}
35+
{% endfor %}
3636

37-
{%- if "profile" in item.value.keys() %}
38-
{%- for line in item.value.profile %}
37+
{% for line in item.value.profile|default([]) %}
3938
{{ line }}
4039
{% endfor %}
41-
{%- endif %}

Diff for: templates/users/ssh_config.j2

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
# {{ ansible_managed }}
33
#
44

5-
{%- for (host_entry, cfg) in item.value.ssh_config.items() %}
5+
{% for (host_entry, cfg) in item.value.ssh_config.items() %}
66
host {{host_entry}}
7-
{%- for (k,v) in cfg.items() %}
7+
{% for (k,v) in cfg.items() %}
88
{{k}} {{v}}
9-
{%- endfor %}
10-
{%- endfor %}
9+
{% endfor %}
10+
{% endfor %}

Diff for: templates/users/vimrc.j2

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
" {{ ansible_managed }}
33
"
44

5-
{% for line in users_default_vimrc %}
5+
{% for line in users_default_vimrc|mandatory %}
66
{{ line }}
77
{% endfor %}
88

9-
{%- if "vimrc" in item.value.keys() %}
10-
{%- for line in item.value.vimrc %}
9+
{% for line in item.value.vimrc|default([]) %}
1110
{{ line }}
1211
{% endfor %}
13-
{%- endif %}

0 commit comments

Comments
 (0)