Fragments of verbose memory

冗長な記憶の断片 - Web技術のメモをほぼ毎日更新(準備中)

Jan 18, 2021 - 日記

Docker環境を一気にセットアップする

レンタルサーバを借りて作業環境を整えたらまずやることはDockerのインストールと言う人は多いのではないでしょうか?

今日は、私が使っているDockerおよびDockerComposeのインストール方法を紹介します。

サーバの設定にはAnsibleを利用します。MacOSX + HomeBrewな環境であれば、Ansibleは以下のコマンドで簡単にインストール可能です。

$ brew install ansible

以下のPlaybookをダウンロードして~/.ansible/playbooks/install-docker.ymlに配置します。

---
- hosts: all
become: yes
tasks:
- name: Update apt packages
apt:
upgrade: no
update_cache: yes
- name: Install packages for docker
apt:
name:
- apt-transport-https
- ca-certificates
- curl
- gnupg-agent
- software-properties-common
- name: Add Docker’s official GPG key
command: |
sh -c "curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -"
- name: Set up the stable Docker repository
command: |
sh -c "add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\""
- name: Update apt packages
apt:
upgrade: no
update_cache: yes
- name: Install Docker packages
apt:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- stat: path=/usr/local/bin/docker-compose
register: docker_compose
- name: Download Docker compose
when: not docker_compose.stat.exists
command: |
sh -c "curl -L \"https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)\" -o /usr/local/bin/docker-compose"
- file:
path: /usr/local/bin/docker-compose
mode: '0755'

以下のコマンドでDocker, DockerComposeがインストールされます。

ansible-playbook -i user@example.com, ~/.ansible/playbooks/install-docker.yml

user@example.comのところはsshで接続できるアカウントに変更してください。内部でsudoを使って昇格しているのでこのユーザでsudoできる必要があります。

ところで、-i user@example.com,の最後の,は奇妙におもわれたかもしれませんが必須です。これは本来AnsibleのInventryを書くべきところにホストを直接書くための記法です。

複数台のサーバにセットアップしたいときには以下のようにして一気に行けます。

ansible-playbook -i user@example.com,user@host2.example.com,user@host3.example.com, ~/.ansible/playbooks/install-docker.yml