逆引きマニュアル: Ansible: ドキュメントをローカルで表示する方法

投稿日:

やりたいこと

Ansibleのドキュメントの表示確認をローカルで行う方法です。

前提条件

今回はDockerを使用します。

概要

  1. Docker環境を作成
  2. Docker内でドキュメント生成
  3. ブラウザで表示確認

手順

1. Docker環境の作成

以下のDockerfileを使用します。 pythonは2.7を使用しています(3にしたい)。

FROM httpd:2.4-alpine

RUN apk add --update \
    git \
    make \
    python \
    py-pip

RUN pip install \
    jinja2 \
    PyYAML \
    six \
    sphinx

ポイントは以下の通り。

  • http:2.4-alpine をベースにする
    • Docker内で構築するため、HTTPサーバが必要
    • 後からHTTPサーバを構築するのは面倒なのでベースを http:* にする。
  • Pythonのモジュールはpipで入れる
    • rpmやdebで入れるとsphinxのバージョンが古くて動かなかった

2. Docker内でドキュメント生成

まずDocker環境を起動します。ポートを8000番に割り当てています。

# ビルド
docker build -t ansible-docs .

# 実行(httpdが動くので別タブで作業)
docker run -it --rm \
  --name ansible-docs \
  -p 8000:80 \
  ansible-docs

それから、Docker内に入ります。

docker exec -it ansible-docs /bin/bash

ビルドを行います。手順は以下の公式ドキュメントを参考にしました。 make webdocs は結構長いです。

MODULE_NAME=モジュール名

cd /usr/local/apache2/htdocs
git clone --depth 1 https://github.com/ansible/ansible.git
cd ansible/docs/docsite
MODULES=${MODULE_NAME} make webdocs

3. ブラウザで動作確認

以下のURLでアクセス可能です。

http://localhost:8000/ansible/docs/docsite/_build/html/modules/

補足

マニュアル