初めての Ansible

サーバーの構成管理ツール Ansible についての総合的な入門書

作成日:2021-05-04
最終更新日:

要旨

サーバーの構成管理ツール Ansible についての総合的な入門書。目次などの情報は下記にある。

https://www.oreilly.co.jp/books/9784873117652/

苦闘

Ansible を動かせるようにするまでには苦闘があった。 Ansible を参照。以下、私の環境は、 Ansible は Windows 10 Home Edition で動いている WSL2 の Ubuntu 20.04 で、 制御対象のホストは WSL2 が動いている同じ PC の、 Windows 用 Virtual Box + Vagrant Ubuntu 20.04 である。

ルート権限

p.19 では、 ルート権限が必要なのであれば -s オプションを渡せば Ansible は sudo して root になります。 とあるが、ansible 2.10.9 では -s オプションはない。

$ ansible localhost -s -a "tail /var/log/syslog"
usage: ansible [-h] [--version] [-v] [-b] [--become-method BECOME_METHOD] [--become-user BECOME_USER] [-K]
               [-i INVENTORY] [--list-hosts] [-l SUBSET] [-P POLL_INTERVAL] [-B SECONDS] [-o] [-t TREE] [-k]
               [--private-key PRIVATE_KEY_FILE] [-u REMOTE_USER] [-c CONNECTION] [-T TIMEOUT]
               [--ssh-common-args SSH_COMMON_ARGS] [--sftp-extra-args SFTP_EXTRA_ARGS]
               [--scp-extra-args SCP_EXTRA_ARGS] [--ssh-extra-args SSH_EXTRA_ARGS] [-C] [--syntax-check] [-D]
               [-e EXTRA_VARS] [--vault-id VAULT_IDS]
               [--ask-vault-password | --vault-password-file VAULT_PASSWORD_FILES] [-f FORKS] [-M MODULE_PATH]
               [--playbook-dir BASEDIR] [-a MODULE_ARGS] [-m MODULE_NAME]
               pattern
ansible: error: unrecognized arguments: -s
(後略)

次のように、--become-user root を使う。

$ ansible localhost --become-user root -a "tail /var/log/syslog"
localhost | CHANGED | rc=0 >>
May  4 22:34:58 localhost anacron[823]: Normal exit (0 jobs run)
May  4 22:34:58 localhost systemd[1]: anacron.service: Succeeded.
May  4 22:35:01 localhost CRON[825]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
May  4 22:35:50 localhost kernel: [ 2794.237353] WSL2: Performing memory compaction.
May  4 22:36:51 localhost kernel: [ 2855.246397] WSL2: Performing memory compaction.
May  4 22:38:53 localhost kernel: [ 2977.255639] WSL2: Performing memory compaction.
May  4 22:39:01 localhost CRON[833]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && →
    if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
May  4 22:41:54 localhost kernel: [ 3158.264376] WSL2: Performing memory compaction.
May  4 22:42:55 localhost kernel: [ 3219.272280] WSL2: Performing memory compaction.
May  4 22:43:41 localhost ansible-ansible.legacy.command: Invoked with _raw_params=tail →
    /var/log/syslog warn=True _uses_shell=False stdin_add_newline=True strip_empty_ends=True →
	argv=None chdir=None executable=None creates=None removes=None stdin=None

誤植

p.15 (例1-1 を除く)本文下から5行目、「test server というエイリアス」とあるが、 「testserver」というエイリアスが正しい(空白がない)。

p.55 上から1行目、/usr/bin/pyton2 とあるが、/usr/bin/python2 が正しい。

誤植に近いもの

誤植と明確には言い切れないが、誤植に近い例がある。 p.14 で $ vagrant ssh-config の出力で、次の2行がある。

IdentityFile /Users/lorinhochstein/dev/ansiblebook/ch01/playbooks/.vagrant/
machines/default/virtualbox/priavate_key

これは実際には1行で出力される。だから、本当であれば次のように1行で書くべきものである。

IdentityFile /Users/lorinhochstein/dev/ansiblebook/ch01/playbooks/.vagrant/machines/default/virtualbox/priavate_key

紙幅の都合で1行に書けないならば、次の行に続いていることを表す印などを入れて1行であることを明示すべきだ。

IdentityFile /Users/lorinhochstein/dev/ansiblebook/ch01/playbooks/.vagrant/→
machines/default/virtualbox/priavate_key

このことは、p.15 の上にもいえる。

書誌情報

書 名初めての Ansible
著 者Lorin Hochstein
発行日2016 年 4 月 15 日(初版第1刷)
発行元オライリー・ジャパン
定 価3,200円(本体)
サイズ
ISBN978-4-87311-765-2
その他越谷市立図書館で借りて読む

まりんきょ学問所コンピュータの部屋コンピュータの本開発環境 > 初めての Ansible


MARUYAMA Satosi