hostname模块
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
name |
字符串 | 是 | --- | 要设置的主机名 • 必须符合 DNS 命名规范: - 仅允许小写字母、数字、连字符 - - 不能以 - 开头或结尾 - 长度建议 ≤ 63 字符 |
permanent |
布尔值 | 否 | yes |
- yes(默认):永久修改(写入 /etc/hostname 等配置文件) - no:仅临时修改(当前会话生效,重启后恢复) |
use |
字符串 | 否 | 自动检测 | 指定底层工具: • hostnamectl(systemd 系统) • sysctl(旧系统) • 通常无需手动指定 |
示例:配置主机名
yaml
- name: 设置永久主机名
ansible.builtin.hostname:
name: web-server-01
# 默认永久修改,可省略
permanent: yes
yaml
- name: 临时修改主机名(重启失效)
hostname:
name: temp-test
# 非永久修改
permanent: no
yaml
- name: 仅当主机名不匹配时才修改
hostname:
name: "{{ target_hostname }}"
# - ansible_hostname 是 Ansible 自动采集的 fact 变量,表示目标主机当前的短主机名(不含域名)
# - target_hostname 是用户定义的期望主机名(通常来自变量或 inventory)
# - 此条件避免不必要的主机名修改,提升幂等性和执行效率
when: ansible_hostname != target_hostname
# 提权
become: yes