uv + Ansible 動作確認テスト
自宅ラボ環境で Ansible の動作確認 をしてみました。
今回は uv で環境を構築し、SSH 経由で対象ホストへ接続してテスト しています。
■ uv で環境構築
まずはプロジェクトディレクトリを作成。
uv init ansible-lab
cd ansible-lab
Ansible を追加します。
uv add ansible
これで uv 管理下の仮想環境に Ansible がインストールされます。
システムPython環境を汚さずに管理できるのがメリットです。
■ SSH 設定
接続を簡単にするため、~/.ssh/config に設定を追加します。
※ IPアドレスやユーザー名は環境に合わせて変更してください。
Host XXX
HostName 192.168.10.143
User pi
Port 22
IdentityFile ~/.ssh/秘密鍵
これで以下のように簡単に接続できます。
ssh XXX
Ansible もこの SSH 設定を利用します。
■ Ansible 設定
inventory.ini
SSH config で定義した Host 名を使用して inventory を作成します。
[my_network]
vm1 ansible_host=XXX
[all:vars]
ansible_python_interpreter=/usr/bin/python3
Raspberry Pi や Ubuntu 系では /usr/bin/python3 を指定しておくと安定します。
■ ping テスト(疎通確認)
まずは Ansible の基本である ping モジュールで接続確認を行います。
uv run ansible all -i inventory.ini -m ping
実行結果:
vm1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
SUCCESS と "pong" が表示されれば成功です。
■ apt update 相当の実行
apt update 相当の処理を実行してみます。
uv run ansible all -i inventory.ini -b -m apt -a "update_cache=yes"
実行結果:
vm1 | SUCCESS => {
"cache_update_time": 1771211128,
"cache_updated": false,
"changed": false
}
こちらも SUCCESS が表示されました。
-b は sudo 実行(become)を意味します。
必要に応じて -K を付ければ sudo パスワード入力が可能です。
リンク
更に理解を深めるために
■ まとめ
- uv で安全な Ansible 環境を構築
- SSH config を使うことで接続管理が楽になる
- inventory を定義すれば複数台の管理も可能
- ping と apt update の実行に成功
少しずつですが、
複数台を一括で操作できる感覚が掴めてきました。
今後は playbook 化や role 分割をやってみたいと思います。
以上になります。またお会いしましょう


