解决ansible ubuntu主机上hostnamectl失败问题

解决ansible ubuntu主机上hostnamectl失败问题

本问题由我组员李卓找到解决办法, 特此感谢.

问题:

试验通过ansible hostname model或者用shell模块执行hostnamectl命令都会导致ansible管理机与该主机失联.
后面的操作无法继续报错退出.

比如:

- name: set hostname
hostname:
name: "{{ fqdn }}"

解决:

原因定位为ubuntu的 /etc/hosts 文件中这条记录

127.0.1.1  主机名

127.0.1.1 是debian上的fqdn回环地址, 怀疑ansible传送到被管理机的模块会应用这个回环地址的主机名.

解决办法:

  1. 修改主机名前,一定要先修改hosts文件中的127.0.1.1 条目
  2. 通过hostnamectl 或者 hostname模块修改主机名
#1 比如从host1 改为host2
#先修改/etc/hosts
127.0.1.1  host2

#2 修改主机名
hostnamectl set-hostname host2