From a9f8c13e80de920cb5442e1b324d19ddf7137f6d Mon Sep 17 00:00:00 2001 From: root Date: Tue, 14 Jan 2025 14:58:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20playbook=20?= =?UTF-8?q?=D0=B8=20inventory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inventory.ini | 10 +++ jenkins-install.yml | 165 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 175 insertions(+) create mode 100644 inventory.ini create mode 100644 jenkins-install.yml diff --git a/inventory.ini b/inventory.ini new file mode 100644 index 0000000..ddecea5 --- /dev/null +++ b/inventory.ini @@ -0,0 +1,10 @@ +$ANSIBLE_VAULT;1.1;AES256 +36326338343966663165373732326261623264396335386137356339363562353364373434313938 +3335353137343230306563623464336630343532353035610a383736643433376133393038623135 +34313638383030613464366537653735613166353264646263643433613161393666356461666633 +3331366464393830620a313566623035636337323864393366316334343063323761626462303936 +64626530663763336436396164363931393034353834666538383761303634666531396464316430 +63646438633062303363383135396662653733336330353462663433306534383936373334386466 +65303034323436363830383361366535663238316561393365353864323337666330326635323261 +31306265326362653835633839343961646265643730333961616633316136313832303730373362 +66373532333634373165336665303363663565643833333230616332643866323562 diff --git a/jenkins-install.yml b/jenkins-install.yml new file mode 100644 index 0000000..435dda5 --- /dev/null +++ b/jenkins-install.yml @@ -0,0 +1,165 @@ +- name: Установка Jenkins с использованием Docker и Docker Compose + hosts: jenkins-hosts + become: true + + + tasks: + + - name: Обновление списка пакетов + apt: + update_cache: yes + + - name: Установка зависимостей для добавления репозитория + apt: + name: + - ca-certificates + - curl + state: present + + - name: Добавить ключ GPG Docker + shell: | + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + args: + executable: /bin/bash + + - name: Добавить репозиторий Docker + shell: | + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list + + - name: Обновление пакетов после добавления репозитория + apt: + update_cache: yes + + - name: Установить Docker с фиксированной версией + shell: | + VERSION_STRING=5:27.3.1-1~debian.12~bookworm + apt-get install -y docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin + args: + executable: /bin/bash + + - name: Создание директории для Jenkins + file: + path: /mnt/fs/docker/jenkins + state: directory + mode: '0777' + + - name: certs + file: + path: /mnt/fs/docker/jenkins/certs + state: directory + mode: '0777' + + - name: jenkins-data + file: + path: /mnt/fs/docker/jenkins/jenkins-data + state: directory + mode: '0777' + + - name: jenkins-blue-ocean + file: + path: /mnt/fs/docker/jenkins/jenkins-blue-ocean + state: directory + mode: '0777' + + - name: jenkins-docker-certs + file: + path: /mnt/fs/docker/jenkins/jenkins-docker-certs + state: directory + mode: '0777' + + - name: Создание Dockerfile для Jenkins Blue Ocean + copy: + dest: /mnt/fs/docker/jenkins/jenkins-blue-ocean/Dockerfile + content: | + FROM jenkins/jenkins:2.479.1-jdk17 + + USER root + + RUN apt-get update && apt-get install -y \ + lsb-release \ + curl \ + gnupg2 \ + ca-certificates \ + sudo \ + build-essential \ + nano \ + iputils-ping \ + curl \ + libssl-dev \ + && apt-get clean + + RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ + https://download.docker.com/linux/debian/gpg + RUN echo "deb [arch=$(dpkg --print-architecture) \ + signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ + https://download.docker.com/linux/debian \ + $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list + RUN apt-get update && apt-get install -y docker-ce-cli + + USER jenkins + + RUN jenkins-plugin-cli --plugins "blueocean docker-workflow" + + - name: Создание файла docker-compose.yml для jenkins + copy: + dest: /mnt/fs/docker/jenkins/docker-compose.yml + content: | + version: '3.8' + + services: + jenkins-docker: + image: docker:dind + container_name: jenkins-docker + restart: on-failure + privileged: true + networks: + jenkins: + aliases: + - docker + environment: + - DOCKER_TLS_CERTDIR=/certs + volumes: + - /mnt/fs/docker/jenkins/jenkins-docker-certs:/certs/client + - /mnt/fs/docker/jenkins/jenkins-data:/var/jenkins_home + - /mnt/fs/docker/jenkins/certs:/usr/local/share/ca-certificates/ + ports: + - "2376:2376" + extra_hosts: + - "registry.entcor:192.168.2.51" + - "git.entcor:192.168.2.61" + + jenkins-blueocean: + build: + context: ./jenkins-blue-ocean + dockerfile: Dockerfile + container_name: jenkins-blueocean + restart: on-failure + networks: + - jenkins + environment: + - DOCKER_HOST=tcp://docker:2376 + - DOCKER_CERT_PATH=/certs/client + - DOCKER_TLS_VERIFY=1 + volumes: + - /mnt/fs/docker/jenkins/jenkins-data:/var/jenkins_home + - /mnt/fs/docker/jenkins/jenkins-docker-certs:/certs/client:ro + ports: + - "8080:8080" + - "50000:50000" + extra_hosts: + - "registry.entcor:192.168.2.51" + - "git.entcor:192.168.2.61" + depends_on: + - jenkins-docker + + networks: + jenkins: + driver: bridge + + - name: Запуск контейнеров + shell: docker compose up -d + args: + chdir: /mnt/fs/docker/jenkins +