blob: f4ef8f1b7fdb05476333b2e949a6d516c1cf5b8b (
plain) (
blame)
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
59
60
61
62
63
64
65
66
67
68
|
---
- name: "Include OS-specific variables"
ansible.builtin.include_vars: "{{ ansible_facts['os_family'] | lower }}.yml"
- name: "Ensure locales package is installed"
become: true
ansible.builtin.package:
name: "{{ locales_package }}"
state: "present"
- name: "Read locale.gen file"
ansible.builtin.slurp:
src: "/etc/locale.gen"
register: locales_content
- name: "Validate locale entries exist in locale.gen"
ansible.builtin.assert:
that:
- "item in (locales_content.content | b64decode)"
fail_msg: "Locale '{{ item }}' not found in /etc/locale.gen."
loop: "{{ locales }}"
- name: "Check if required locales are generated"
ansible.builtin.shell: |
set -o pipefail
locale -a | grep 'utf8$' | sed 's/.utf8$/.UTF-8 UTF-8/'
args:
executable: /bin/bash
register: locales_available
changed_when: false
- name: "Generate locales if missing"
become: true
when: locales | difference(locales_available.stdout_lines) | length > 0
block:
- name: "Update locale.gen"
ansible.builtin.lineinfile:
dest: "/etc/locale.gen"
mode: "0644"
regexp: "^#{{ item }}"
line: "{{ item }}"
loop: "{{ locales }}"
- name: "Generate locales"
ansible.builtin.command:
cmd: "locale-gen"
changed_when: true
- name: "Update locale.conf"
become: true
ansible.builtin.copy:
dest: "/etc/locale.conf"
mode: "0644"
content: |
LANG={{ locales_lang }}
LANGUAGE={{ locales_language }}
LC_CTYPE={{ locales_lc_ctype }}
LC_NUMERIC={{ locales_lc_numeric }}
LC_TIME={{ locales_lc_time }}
LC_COLLATE={{ locales_lc_collate }}
LC_MONETARY={{ locales_lc_monetary }}
LC_MESSAGES={{ locales_lc_messages }}
LC_PAPER={{ locales_lc_paper }}
LC_NAME={{ locales_lc_name }}
LC_ADDRESS={{ locales_lc_address }}
LC_TELEPHONE={{ locales_lc_telephone }}
LC_MEASUREMENT={{ locales_lc_measurement }}
LC_IDENTIFICATION={{ locales_lc_identification }}
|