--- # 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 {{ locale_config_locale }} become: true community.general.locale_gen: state: present name: "{{ locale_config_locale }}" - name: ensure locale files are available for {{ locale_config_language }} become: true community.general.locale_gen: state: present name: "{{ locale_config_language }}" - name: get current locale and language configuration register: locale_config_status changed_when: false ignore_errors: true ansible.builtin.command: cmd: localectl status - name: remember current LANG config when: not locale_config_status is skipped ansible.builtin.set_fact: locale_config_current: "{{ locale_config_status.stdout | regex_search('LANG=([^\n]+)', '\\1') | first }}" - name: print current config ansible.builtin.debug: msg: "LANG={{ locale_config_current }}" - name: set locale to '{{ locale_config_locale }}' become: true changed_when: locale_config_current != locale_config_locale ansible.builtin.command: cmd: localectl set-locale LANG={{ locale_config_locale }} - name: set language to '{{ locale_config_language }}' become: true changed_when: locale_language != locale_config_language vars: locale_language: "{{ locale_config_status.stdout | regex_search('LANGUAGE=([^\n]+)', '\\1') | default([locale_config_current], true) | first }}" ansible.builtin.command: cmd: localectl set-locale LANGUAGE={{ locale_config_language }}