Hostnamectlに「バス接続を作成できませんでした。ファイルまたはディレクトリがありません」というエラーが表示されます。

Hostnamectlに「バス接続を作成できませんでした。ファイルまたはディレクトリがありません」というエラーが表示されます。

hostnameansible モジュールを使用して設定しようとすると、次の結果が表示されます。

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"}

興味深いことにhostnamectl、コンピュータにSSH経由でホスト名を設定しようとするとエラーが発生します。

bash-4.2# hostnamectl set-hostname foo.bar.com
Failed to create bus connection: No such file or directory

私はこれら2つの質問が互いに関連していると思いますが、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

何が問題なのでしょうか?セントース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存在しないことを確認できます

アンサーブルをプレイする方法は次のとおりです。

- 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

関連情報