手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 Ansible の基本設定 – 構成管理を実行する環境を整える

Ubuntu 26.04 を複数台のサーバー管理に使う場合、手作業で設定を積み上げるだけでは、状態の再現性や差分管理が難しくなります。Ansible は、SSH 経由でサーバーへ接続し、パッケージ、設定ファイル、systemd、ユーザー、証明書、ネットワーク設定などをコードとして適用するための構成管理ツールです。

この記事では、Ubuntu 26.04 上で Ansible を実行するための基本環境を整えます。管理対象サーバーをどう設計するかではなく、ansibleansible-lint、Ansible Galaxy collection、inventory、SSH、sudo の前提を確認する記事です。

Ansible は構成管理を実行するための道具である

Ansible は、サーバーそのものの機能ではなく、サーバー状態を定義して適用するための道具です。管理対象サーバーに agent を常駐させるのではなく、基本的には管理側から SSH で接続し、必要な処理を実行します。

領域役割
管理ノードansibleansible-playbook を実行する側
管理対象SSH で接続され、設定を適用されるサーバー
inventory管理対象ホスト、グループ、接続情報、変数を定義する
playbookどの role や task をどの対象へ適用するかを定義する
role設定対象ごとに task、template、handler、vars を分離する
collection標準 module 以外の機能を追加する単位

Ansible をインストールする

Ubuntu 26.04 では、まず apt で ansibleansible-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.core

inventory と疎通確認

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 --list

SSH と 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: false
コマンド
ansible-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 を整理する
sudoNOPASSWD の有無や対象コマンドを明確にする
collection必要な collection を明示し、実行環境差を減らす
check mode便利だが完全な dry-run ではない
lint構成管理の品質を保つ補助として使う

まとめ

Ubuntu 26.04 で Ansible を使う場合、まず ansibleansible-lint、必要な Ansible Galaxy collection を揃え、inventory、SSH、sudo の前提を確認します。ここが曖昧なまま role や playbook を増やすと、構成管理そのものが不安定になります。

Ansible は作業を魔法のように自動化する道具ではありません。対象、変数、権限、実行順序、冪等性を明示し、サーバー状態を再現できる形にするための道具です。Ubuntu 26.04 のサーバー管理では、Ansible 実行環境を整えることが、手順を安定して積み上げる土台になります。

参考書籍
参考書籍
Advanced Ubuntu Administration and Management Best Practices

Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

次に読む記事

Ubuntu 26.04 サーバー管理ガイド
Ubuntu 26.04 Ansible の基本設定 – 構成管理を実行する環境を整える

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る