はじめに
Docker開発環境をOracle Linuxで整えたかった。手順はこちらの記事で紹介されていたが、せっかくなのでAnsibleでやってみることにした。
環境
インフラ:Oracle Cloud Infrastructure
Ansible実行インスタンス:Oracle-Linux-Cloud-Developer-8.4-2021.08.27
セットアップするインスタンス:Oracle-Linux-8.4-2021.07.27
事前準備
- 上記2つのインスタンスを作成していること。
- Ansible実行インスタンスにセットアップするインスタンスのSSH秘密鍵をコピーしていること。
- SSH秘密鍵のパーミッションを600に変更していること。
手順
-
Ansible実行インスタンスにopcユーザーでログイン
-
作業用ディレクトリ作成
mkdir ansible-exec cd ansible-exec
-
次の内容でinventory.iniを作成
inventory.ini[dev_server] #セットアップするインスタンスのパブリックIP XXX.XXX.XXX.XXX [dev_server:vars] ansible_user=opc #セットアップするインスタンスのSSH秘密鍵のフルパス ansible_ssh_private_key_file=/home/opc/.ssh/XXXXXXX.key
-
次の内容でdev_playbook.ymlを作成
dev_playbook.yml--- - hosts: dev_server user: opc become: yes tasks: - name: set timezone timezone: name: Asia/Tokyo - name: add yum repo command: cmd: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo creates: /etc/yum.repos.d/docker-ce.repo - name: install docker dnf: name: ['docker-ce','docker-ce-cli','containerd.io'] state: latest - name: docker service start/enable systemd: name: docker state: started enabled: yes - name: add opc user to the docker group user: name: opc groups: docker append: yes - name: download docker-compose become: no shell: creates=/home/opc/docker-compose-linux-x86_64 curl -s https://api.github.com/repos/docker/compose/releases/latest|grep browser_download_url|grep docker-compose-linux-x86_64|cut -d '"' -f 4|wget -qi - args: warn: false - name: change parm file: path: /home/opc/docker-compose-linux-x86_64 mode: 0775 - name: copy binary file shell: creates=/usr/local/bin/docker-compose cp -a /home/opc/docker-compose-linux-x86_64 /usr/local/bin/docker-compose
- yumのrepository追加はモジュールが存在するがそれを使うとなぜかうまくいかなかったのでcommandで実行している
- commandやshellのcreatesはこのファイルが存在しているときはスキップしてくれる
-
次のコマンドで実行
ansible-playbook -i inventory.ini dev_playbook.yml
-
設定内容について、インスタンスに接続し確かめる
ssh -i /home/opc/.ssh/XXXXXXX.key opc@XXX.XXX.XXX.XXX newgrp docker docker pull hello-world docker run -rm --name hello-world docker.io/library/hello-world:latest #dockerインストール・起動状態の正常性確認 docker-compose version #docker composeのインストール確認
参考
インストール手順はこちらの記事そのままです。