gpt4 book ai didi

ansible debconf 模块无法正常工作以设置默认语言环境

转载 作者:行者123 更新时间:2023-12-02 04:27:37 25 4
gpt4 key购买 nike

- name: Generate required locales
locale_gen:
name: "{{ item }}"
state: present
with_items:
- "fr_FR"
- "fr_FR.UTF-8"
- "fr_FR@euro"
become: yes

- name: rebuild locales database
command: "{{ item }}"
with_items:
- dpkg-reconfigure locales -f noninteractive
- /usr/sbin/locale-gen
become: yes

- name: Set defaultt locale to fr_FR.UTF-8
debconf:
name: locales
question: locales/default_environment_locale
value: fr_FR.UTF-8
vtype: select
become: yes

- name: rebuild locales database3
command: "{{ item }}"
with_items:
- dpkg-reconfigure locales -f noninteractive
- /usr/sbin/locale-gen
become: yes

2 个 first 任务运行良好(如果我这样做:sudo dpkg-reconfigure locales,我想要的 3 fr_FR 被选中)但对于第二部分:ansible 说它的工作(更改)但如果我这样做:cat/etc/default/locale我仍然有 EN 作为默认值?为什么 ?

最佳答案

这个具体的locales软件包总是从 /etc/locale.gen 重新读取其配置和 /etc/default/locale文件,根据我在 /var/lib/dpkg/info/locales.config 中可以阅读的内容.

因此,在这种特定情况下,您不能使用 debconf模块。相反,您必须先使用 locale_gen模块来选择可用的语言环境,然后是 lineinfile /etc/default/locale 上的模块选择您的默认语言环境,最后选择 command启动 dpkg-reconfigure -f noninteractive locales 的模块(将依次运行 locale-gen 命令)将所有这些应用到系统中。

debconf 配置将相应更新。看起来正好相反(文件通常是从 debconf 选项更新的),但现在就是这样做的。

这是我自己实际使用的完整解决方案:

vars:
locales_generated:
- en_US.UTF-8
- fr_CA.UTF-8
- fr_FR.UTF-8
locales_default: fr_CA.UTF-8

tasks:

- name: select locales to be generated
locale_gen:
name: "{{ item }}"
state: present
loop: "{{ locales_generated }}"
notify: reconfigure locales

- name: set default locale
lineinfile:
dest: "/etc/default/locale"
regexp: "^LANG="
line: "LANG={{ locales_default }}"
notify: reconfigure locales

handlers:

- name: reconfigure locales
command: dpkg-reconfigure -f noninteractive locales

关于ansible debconf 模块无法正常工作以设置默认语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52421542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com