1
0

More than 1 year has passed since last update.

Oracle Linux 8にDockerCEをAnsibleでセットアップする

Posted at

はじめに

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に変更していること。

手順

  1. Ansible実行インスタンスにopcユーザーでログイン

  2. 作業用ディレクトリ作成

    mkdir ansible-exec
    cd ansible-exec
    
  3. 次の内容で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
    
  4. 次の内容で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はこのファイルが存在しているときはスキップしてくれる
  5. 次のコマンドで実行

    ansible-playbook -i inventory.ini dev_playbook.yml
    
  6. 設定内容について、インスタンスに接続し確かめる

    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のインストール確認
    

参考

インストール手順はこちらの記事そのままです。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0