diff --git a/docker-compose.yml b/docker-compose.yml index 8b80663..5561d9b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,17 +4,19 @@ services: image: phpmyadmin restart: always ports: - - 8080:80 + - 4445:80 env_file: - .env links: - db:db - + depends_on: + - db + wordpress: image: wordpress:latest restart: always ports: - - 8081:80 + - 4444:80 env_file: - .env volumes: @@ -23,6 +25,7 @@ services: - db db: + container_name: db image: mysql:latest restart: always env_file: diff --git a/inventory.ini b/inventory.ini new file mode 100644 index 0000000..3818375 --- /dev/null +++ b/inventory.ini @@ -0,0 +1,4 @@ +[myhosts] +37.114.41.144 ansible_ssh_user=root +; 192.168.1.119:2222 ansible_ssh_user=server_user +; 192.168.1.119:2223 ansible_ssh_user=server_user \ No newline at end of file diff --git a/playbook.yml b/playbook.yml index 7446afc..420d6d8 100644 --- a/playbook.yml +++ b/playbook.yml @@ -1,21 +1,134 @@ ---- +# --- - name: Deploy WordPress - hosts: web - become: true + hosts: myhosts + # remote_user: root # Change remote user to your sudo user! + # become: true + vars: + arch_mapping: # Map ansible architecture {{ ansible_architecture }} names to Docker's architecture names + x86_64: amd64 + aarch64: arm64 + tasks: - - name: Install Docker - apt: - name: docker.io + + - name: Create src directory if it does not exist + ansible.builtin.file: + path: ./src + state: directory + mode: '0755' + + - name: Synchronize folder using rsync + synchronize: + src: ./ # Specify the source folder on the control node + dest: src/ # Specify the destination folder on the target node + + - name: Update and upgrade all packages to the latest version + ansible.builtin.apt: + update_cache: true + upgrade: dist + cache_valid_time: 3600 + + - name: Install required packages + ansible.builtin.apt: + pkg: + - python3-pip + - apt-transport-https + - ca-certificates + - curl + - gnupg + # - software-properties-commo + - name: Create directory for Docker's GPG key + ansible.builtin.file: + path: /etc/apt/keyrings + state: directory + mode: '0755' + + - name: Add Docker's official GPG key + ansible.builtin.apt_key: + url: https://download.docker.com/linux/ubuntu/gpg + keyring: /etc/apt/keyrings/docker.gpg + state: present + + - name: Print architecture variables + ansible.builtin.debug: + msg: "Architecture: {{ ansible_architecture }}, Codename: {{ ansible_lsb.codename }}" + + - name: Add Docker repository + ansible.builtin.apt_repository: + repo: >- + deb [arch={{ arch_mapping[ansible_architecture] | default(ansible_architecture) }} + signed-by=/etc/apt/keyrings/docker.gpg] + https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename }} stable + filename: docker + state: present + # - name: Add Docker repository + # apt_repository: + # repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename }} stable + # state: present + + - name: Install Docker and related packages + ansible.builtin.apt: + name: "{{ item }}" + state: present + update_cache: true + loop: + - docker-ce + - docker-ce-cli + - containerd.io + - docker-buildx-plugin + - docker-compose-plugin + + - name: Add Docker group + ansible.builtin.group: + name: docker state: present - - name: Install Docker Compose - pip: - name: docker-compose + - name: Add user to Docker group + ansible.builtin.user: + name: "{{ ansible_user }}" + groups: docker + append: true - - name: Copy Docker Compose file - copy: - src: /path/to/docker-compose.yml - dest: /home/user/docker-compose.yml + - name: Install Docker Module for Python + ansible.builtin.apt: + pkg: + - python3-docker - - name: Start Docker containers - command: docker-compose up -d \ No newline at end of file + # - name: Install Docker Module for Python + # ansible.builtin.shell: + # cmd: pip3 install docker + + - name: Enable and start Docker services + ansible.builtin.systemd: + name: "{{ item }}" + enabled: true + state: started + loop: + - docker.service + - containerd.service + + - name: Install docker-compose + remote_user: ubuntu + get_url: + url : https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-Linux-x86_64 + dest: /usr/local/bin/docker-compose + mode: 'u+x,g+x' + + - name: Launch Docker Compose project + ansible.builtin.shell: + cmd: docker-compose up + chdir: src/ + + # - name: Copy Docker Compose file + # copy: + # src: ./ + # dest: src/ + + # - name: Launch Docker Compose project + # ansible.builtin.shell: + # cmd: docker-compose up + # chdir: src/ + + # - name: Launch Docker Compose project + # docker_compose: + # project_src: src/ + # state: present \ No newline at end of file