Ubuntu 26.04 を複数台のサーバー管理に使う場合、手作業で設定を積み上げるだけでは、状態の再現性や差分管理が難しくなります。Ansible は、SSH 経由でサーバーへ接続し、パッケージ、設定ファイル、systemd、ユーザー、証明書、ネットワーク設定などをコードとして適用するための構成管理ツールです。
この記事では、Ubuntu 26.04 上で Ansible を実行するための基本環境を整えます。管理対象サーバーをどう設計するかではなく、ansible、ansible-lint、Ansible Galaxy collection、inventory、SSH、sudo の前提を確認する記事です。
Ansible は構成管理を実行するための道具である
Ansible は、サーバーそのものの機能ではなく、サーバー状態を定義して適用するための道具です。管理対象サーバーに agent を常駐させるのではなく、基本的には管理側から SSH で接続し、必要な処理を実行します。
| 領域 | 役割 |
|---|---|
| 管理ノード | ansible や ansible-playbook を実行する側 |
| 管理対象 | SSH で接続され、設定を適用されるサーバー |
| inventory | 管理対象ホスト、グループ、接続情報、変数を定義する |
| playbook | どの role や task をどの対象へ適用するかを定義する |
| role | 設定対象ごとに task、template、handler、vars を分離する |
| collection | 標準 module 以外の機能を追加する単位 |
Ansible をインストールする
Ubuntu 26.04 では、まず apt で ansible と ansible-lint を導入します。ansible-lint は playbook や role の品質確認に使います。
sudo apt update
sudo apt install -y ansible ansible-lint導入後、Ansible のバージョン、Python の場所、collection path を確認します。Ansible は Python と密接に関係するため、どの Python を見ているかも確認しておくと切り分けしやすくなります。
ansible --version
ansible-playbook --version
ansible-lint --version必要な collection を導入する
Ansible では、標準 module だけでなく、用途別の collection を使います。Linux、証明書、Docker、MySQL、Kubernetes、NetBox、VyOS などを扱う場合、必要な collection を明示しておくと、別環境でも同じ前提を再現しやすくなります。
ansible-galaxy collection install ansible.posix
ansible-galaxy collection install community.crypto
ansible-galaxy collection install community.docker
ansible-galaxy collection install community.general
ansible-galaxy collection install community.mysql
ansible-galaxy collection install community.zabbix
ansible-galaxy collection install kubernetes.core
ansible-galaxy collection install netbox.netbox
ansible-galaxy collection install vyos.vyos導入済みかどうかは ansible-galaxy collection list で確認できます。collection は「便利だから適当に入れる」のではなく、どの記事や role が何を必要としているかに合わせて管理する方が自然です。
ansible-galaxy collection list ansible.posix
ansible-galaxy collection list community.crypto
ansible-galaxy collection list kubernetes.coreinventory と疎通確認
Ansible を使うには、まず inventory で管理対象を定義します。最小構成では INI 形式でも書けますが、実運用では YAML inventory、group_vars、host_vars を使って構成を分けることが多くなります。
all:
hosts:
server1.example.com:
ansible_user: myadmin
children:
ubuntu_servers:
hosts:
server1.example.com:inventory を書いたら、まず ping module で疎通を確認します。これは ICMP の ping ではなく、Ansible が SSH 接続し、Python 経由で module を実行できるかの確認です。
ansible -i inventory.yml ubuntu_servers -m ping
ansible-inventory -i inventory.yml --graph
ansible-inventory -i inventory.yml --listSSH と sudo の前提を確認する
Ansible は SSH 接続を前提にするため、公開鍵認証、接続ユーザー、sudo 権限が整理されていないと安定しません。手元で SSH できることと、Ansible から同じ条件で接続できることを分けて確認します。
ssh myadmin@server1.example.com
ansible -i inventory.yml server1.example.com -m command -a 'whoami'
ansible -i inventory.yml server1.example.com -b -m command -a 'whoami' -b は privilege escalation、つまり sudo などで権限昇格する指定です。サーバー側の sudoers 設計と Ansible の実行方式が噛み合っていないと、playbook 実行時に途中で止まります。
playbook を最小構成で確認する
最初は大きな role を流す前に、小さな playbook で実行経路を確認します。対象ホスト、become、facts、module 実行が期待通りに動くかを見るためです。
- name: Check Ubuntu server
hosts: ubuntu_servers
become: true
tasks:
- name: Show OS release
ansible.builtin.command:
cmd: cat /etc/os-release
changed_when: falseansible-playbook -i inventory.yml check.yml --check
ansible-playbook -i inventory.yml check.yml--check は dry-run に近い確認ですが、すべての module が完全に check mode に対応しているわけではありません。変更前確認として有用ですが、実行結果を過信しすぎない方が安全です。
ansible-lint で基本的な品質を確認する
playbook や role が増えてくると、書き方の揺れ、危険な command 実行、冪等性の弱い task が混ざりやすくなります。ansible-lint は、そのような問題を早い段階で検出するために使います。
ansible-lint check.yml
ansible-lint playbooks/ roles/lint は絶対的な正しさを保証するものではありません。ただし、構成管理を長く保守するなら、最低限の書き方を揃える仕組みとしてかなり有効です。
運用上の注意点
| 項目 | 注意点 |
|---|---|
| inventory | 環境、用途、責任範囲ごとに分ける |
| SSH | 公開鍵、接続ユーザー、known_hosts を整理する |
| sudo | NOPASSWD の有無や対象コマンドを明確にする |
| collection | 必要な collection を明示し、実行環境差を減らす |
| check mode | 便利だが完全な dry-run ではない |
| lint | 構成管理の品質を保つ補助として使う |
まとめ
Ubuntu 26.04 で Ansible を使う場合、まず ansible、ansible-lint、必要な Ansible Galaxy collection を揃え、inventory、SSH、sudo の前提を確認します。ここが曖昧なまま role や playbook を増やすと、構成管理そのものが不安定になります。
Ansible は作業を魔法のように自動化する道具ではありません。対象、変数、権限、実行順序、冪等性を明示し、サーバー状態を再現できる形にするための道具です。Ubuntu 26.04 のサーバー管理では、Ansible 実行環境を整えることが、手順を安定して積み上げる土台になります。
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。



