Ansible: becomeをUbuntu 26.04 LTSでやる時の一つのワークアラウンド

Page content
sudoコマンド変わったの……
Ubuntu Serverの最新LTS、26.04 LTSが2026年4月にリリースされた。さっそくこのLTSバージョンのUbuntuで構築したサーバに、Ansibleでアクセスして、これまで通りにbecomeしようとするとどうなるか。実は、原稿執筆時点のansible core 2.16等だとタイムアウトしてしまう。
タイムアウトするのは何故かというと、Ubuntu Server 26.04 LTSにおいては、従来のsudoコマンドとプロンプトの出方が異なる、新しいsudoコマンドが実装されているためだ。そこで本記事では、ワークアラウンドとして、26.04 LTSに対しても従来と同じansible playbookを使ってbecomeできるようにする方法の一つを、書き留めたい。
ansibleでbecomeする時に、この件でちょっと今困っている。。。 /
— Masahiko OHKUBO (@mah_jp) May 8, 2026
Understanding sudo-rs on Ubuntu 26.04 https://t.co/QgZy8yXbdv
ワークアラウンド
アクセス先のOSがUbuntu 26.04 LTSの場合には、sudo時に使用するコマンドを、sudoからsudo.wsに切り替えるとよい。後者のsudo.wsは、従来のsudoと同等の互換性があるコマンドとして用意されており、プロンプト表示の仕方も変わらないので、従来通りのplaybookが使えるというわけだ。
例えば、インベントリーファイル (inventory file) にて、当該サーバに対して個別指定する場合にはこのようになる。
[group_hogehoge] server1_ubuntu2404 server2_ubuntu2604 ansible_become_exe=sudo.ws
このワークアラウンドはシンプルなので、後々不要になるときには容易に元へ戻せると思う。

