Содержание

Установка Docker, готовое решение

запуск сборки

ansible-playbook -i demo-server config.yaml -K

структура проекта

📁 ansible-demo
 +---📁 demo-server
 |    +---demo
 \---config.yaml

inventory demo

[demo]
127.0.0.1 ansible_user=werwolf ansible_port=2222

playbooks config.yaml

---
- name: Preconfig
  hosts: demo
  tasks:
    - name: Установка Docker
      block:
       - name: Create user # Первая задача
         vars: # lsb_release -a - узнать версию ubuntu
           user: werwolf
         user:
           name: "{{ user }}"
           state: present

       - name: Добавим universe
         apt_repository: # lsb_release -a - узнать версию ubuntu
           repo: "deb http://archive.ubuntu.com/ubuntu {{ ansible_distribution_release }} universe"
           state: present

       - name: Установка дополнительных пакетов
         apt:
           name:
             - apt-transport-https
             - ca-certificates
             - curl
             - gnupg
           update-cache: yes
           cache_valid_time: 86400
           state: present
       - name: добавление ключа Docker
         apt_key:
           url: https://download.docker.com/linux/ubuntu/gpg
           state: present
       - name: Установка стабильного репозитория
         apt_repository:
           repo: >
             deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] 
             https://download.docker.com/linux/ubuntu 
             {{ ansible_distribution_release }} stable
           state: present
           update-cache: yes
           filename: docker
       - name: Установка Docker-ce
         apt:
           name: docker-ce
           update-cache: yes
           cache_valid_time: 86400
       - name: Проверка что docker установлен и перезагружен
         service:
           name: docker
           state: restarted
           enabled: yes
      become: true # общий для всего блока вызов sudo
    - name: Установка Docker-compose
      block:
        - name: получение последней версии docker-compose
          uri:
            url: https://api.github.com/repos/docker/compose/releases/latest
            body_format: json
          register: release
        - name: Установка docker-compose
          get_url:
            url: "https://github.com/docker/compose/releases/download/{{ release.json.tag_name }}/docker-compose-linux-x86_64"
            dest: /usr/local/bin/docker-compose
            mode: 0755
      become: yes
    - name: завершени установки
      block:
        - name: Добавление пользователя в группу Docker
          user:
            name: werwolf
            groups: docker
            append: yes
        - name: Перезагрузка сервера
          reboot:
            msg: "Rebooting machine in 5 seconds"
      become: yes