使用Ansible:Can';t安装locales包

使用Ansible:Can';t安装locales包,ansible,centos,locale,centos7,Ansible,Centos,Locale,Centos7,我找到该模块以确保系统上存在区域设置,并尝试了以下操作: 这会引发一个错误: /缺少etc/locale.gen和/var/lib/locales/supported.d/local。是否安装了包“locales” 所以我试着安装它: - name: Install locales package become: yes yum: name: locales state: present 使用sudo-yum安装区域设置进行Ansible和手动安装都不起作用。我还尝试过

我找到该模块以确保系统上存在区域设置,并尝试了以下操作:

这会引发一个错误:

/缺少etc/locale.gen和/var/lib/locales/supported.d/local。是否安装了包“locales”

所以我试着安装它:

- name: Install locales package
  become: yes
  yum:
    name: locales
    state: present
使用
sudo-yum安装区域设置进行Ansible和手动安装都不起作用。我还尝试过启用EPEL回购,但没有成功

如何确保目标系统上存在请求者的语言?

自2018年8月27日起,centos支持部门将提供一个服务。我建议你投赞成票,这样我们就有机会让它爬上优先名单(如果你有必要的技能和足够的时间,也可以提交一份PR)

在这一问题得到解决之前,您可能可以根据您的问题应用下面的修改(针对docker
centos:7
container成功测试):


此外,对于某些添加的上下文,没有名为
locales
的包,这就是为什么yum的原始任务失败的原因。包含区域设置数据的包名为
glibc common
(至少在RHEL/CentOS 7上,8的名称应相同)。然而,正如第一位评论者所指出的,似乎存在一个bug。

更像是CentOS上Ansible的bug,而不是您的安装上的一个问题,基于他们的报告:β.εηοτ.βε该bug报告似乎与OPs问题无关。看起来是个更好的候选人。
- name: Install locales package
  become: yes
  yum:
    name: locales
    state: present
- name: Define needed locales (for example, can be set in vars or inventory)
  set_fact:
    system_settings_locales:
      - en_US.UTF-8
      - de_DE.UTF-8

- name: Check existing locales
  shell: "locale -a | grep -i {{ item | regex_replace('-', '') | quote }}"
  register: found_locales
  changed_when: false
  failed_when: false
  loop: "{{ system_settings_locales }}"

- name: Create missing locales
  command: "localedef -i {{ item.item | regex_replace('(.*)\\..*', '\\1') | quote }} -f {{ item.item | regex_replace('.*\\.(.*)', '\\1') | quote }} {{ item.item | quote }}"
  when: item.rc != 0
  loop: "{{ found_locales.results }}"