--- # got this from here: # https://serverfault.com/questions/959026/how-do-i-generate-and-set-the-locale-using-ansible/981742#981742 - name: ensure locale files are available for {{ system_locale }} become: true community.general.locale_gen: name: "{{ system_locale }}" state: present - name: ensure locale files are available for {{ system_language }} become: true community.general.locale_gen: name: "{{ system_language }}" state: present - name: get current locale and language configuration ansible.builtin.command: cmd: localectl status register: locale_status changed_when: false # - name: set facts locale_lang and locale_language # ansible.builtin.set_fact: # locale_lang: "{{ locale_status.stdout | regex_search('LANG=([^\n]+)', '\\1') | first }}" # locale_language: "{{ locale_status.stdout | regex_search('LANGUAGE=([^\n]+)', '\\1') | default([locale_lang], true) | first }}" - debug: msg: - "{{ locale_status.stdout | regex_search('LANGUAGE=([^\n]+)', '\\1') }}" - "{{ locale_status.stdout | regex_search('LANGUAGE=([^\n]+)', '\\1') | default([locale_lang], true) }}" - "{{ locale_status.stdout | regex_search('LANGUAGE=([^\n]+)', '\\1') | default([locale_lang], true) | first }}" - name: set locale to '{{ system_locale }}' become: true changed_when: locale_lang != system_locale ansible.builtin.command: cmd: localectl set-locale LANG={{ system_locale }} vars: locale_lang: "{{ locale_status.stdout | regex_search('LANG=([^\n]+)', '\\1') | first }}" - name: set language to '{{ system_language }}' become: true changed_when: locale_language != system_language ansible.builtin.command: cmd: localectl set-locale LANGUAGE={{ system_language }} vars: locale_language: "{{ locale_status.stdout | regex_search('LANGUAGE=([^\n]+)', '\\1') | default([locale_lang], true) | first }}" # root@nfs-test:~# localectl status # System Locale: LANG=de_DE.UTF-8 # LANGUAGE=en_US.UTF-8 # VC Keymap: (unset) # X11 Layout: (unset)