当我尝试hostname
使用 ansible 模块进行设置时,我得到
TASK [set hostname] **************************************************************************************
fatal: [10.1.38.15]: FAILED! => {"changed": false, "msg": "Command failed rc=1, out=, err=Failed to create bus connection: No such file or directory\n"}
有趣的是,当我 ssh 到计算机并尝试设置主机名时,hostnamectl
我也收到错误。
bash-4.2# hostnamectl set-hostname foo.bar.com
Failed to create bus connection: No such file or directory
我相信这两个问题是相关的,但dbus
表明它正在运行,
● dbus.service - D-Bus System Message Bus
Loaded: loaded (/usr/lib/systemd/system/dbus.service; static; vendor preset: disabled)
Active: active (running) since Tue 2020-01-07 09:04:45 CST; 2h 28min ago
问题可能是什么?我使用的是 Centos 7。
显然,当我strace
hostnamectl
得到
connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/dbus/system_bus_socket"}, 33) = -1 ENOENT (No such file or directory)
我可以确认它/var/run/dbus/system_bus_socket
不存在
ansible的玩法是
- name: set hostname
hostname
name: cp-1-2.foo.bar.com
答案1
我可以确认它
/var/run/dbus/system_bus_socket
不存在。
那么你的问题就在那里。 /var/run
应该象征性地链接到/run
,并且/run/dbus/system_bus_socket
是作为 的结果而创建的dbus.socket
。
dbus.service
顺便说一句,如果情况并非如此,那么再多的摆弄也无法解决其中任何一个问题。修复符号链接,或者重新初始化插座。
答案2
您到 /var/run 的符号链接已损坏。重新创建符号链接,您应该可以开始了。
sudo rm /var/run -R
sudo ln -s /run /var
sudo reboot