From 605c94642c783721e65b9d6ec80f41b3a878becc Mon Sep 17 00:00:00 2001 From: dannc Date: Tue, 30 Aug 2022 10:52:53 +0700 Subject: [PATCH] add homework 9.4, add some preparations --- readme.md | 1 + .../09-ci/9.4/img/jenkins_dashboard.png | Bin 0 -> 69982 bytes src/homework/09-ci/9.4/img/jenkins_start.png | Bin 0 -> 35262 bytes .../09-ci/9.4/infrastructure/.gitignore | 3 + .../9.4/infrastructure/files/CentOS-Base.repo | 47 ++++++ .../9.4/infrastructure/files/pg_hba.conf | 89 ++++++++++ .../inventory/group_vars/jenkins.yml | 9 ++ .../inventory/hosts.yml.example | 19 +++ .../09-ci/9.4/infrastructure/site.yml | 153 ++++++++++++++++++ src/homework/09-ci/9.4/readme.md | 57 +++++++ 10 files changed, 378 insertions(+) create mode 100644 src/homework/09-ci/9.4/img/jenkins_dashboard.png create mode 100644 src/homework/09-ci/9.4/img/jenkins_start.png create mode 100644 src/homework/09-ci/9.4/infrastructure/.gitignore create mode 100644 src/homework/09-ci/9.4/infrastructure/files/CentOS-Base.repo create mode 100644 src/homework/09-ci/9.4/infrastructure/files/pg_hba.conf create mode 100644 src/homework/09-ci/9.4/infrastructure/inventory/group_vars/jenkins.yml create mode 100644 src/homework/09-ci/9.4/infrastructure/inventory/hosts.yml.example create mode 100644 src/homework/09-ci/9.4/infrastructure/site.yml create mode 100644 src/homework/09-ci/9.4/readme.md diff --git a/readme.md b/readme.md index 64a4182..6eaa841 100644 --- a/readme.md +++ b/readme.md @@ -44,3 +44,4 @@ * [8.6. Создание собственных modules](/src/homework/08-ansible/8.6) * [9.1. Жизненный цикл ПО](/src/homework/09-ci/9.1) * [9.3. CI\CD](/src/homework/09-ci/9.3) +* [9.4 Jenkins](/src/homework/09-ci/9.4) diff --git a/src/homework/09-ci/9.4/img/jenkins_dashboard.png b/src/homework/09-ci/9.4/img/jenkins_dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..cf29bc1a6e1a0c0bffeb2c64c64d2a0b27efed8a GIT binary patch literal 69982 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 literal 0 HcmV?d00001 diff --git a/src/homework/09-ci/9.4/img/jenkins_start.png b/src/homework/09-ci/9.4/img/jenkins_start.png new file mode 100644 index 0000000000000000000000000000000000000000..41757463685ff8bdc7fa88a632a5dc47dea28958 GIT binary patch literal 35262 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 W;$98@ + jenkins-agent-01: + ansible_host: + children: + jenkins: + children: + jenkins_masters: + hosts: + jenkins-master-01: + jenkins_agents: + hosts: + jenkins-agent-01: + vars: + ansible_connection_type: paramiko + ansible_user: diff --git a/src/homework/09-ci/9.4/infrastructure/site.yml b/src/homework/09-ci/9.4/infrastructure/site.yml new file mode 100644 index 0000000..122e639 --- /dev/null +++ b/src/homework/09-ci/9.4/infrastructure/site.yml @@ -0,0 +1,153 @@ +--- +- name: Preapre all hosts + hosts: all + tasks: + - name: Create group + become: true + group: + name: "{{ user_group }}" + state: present + - name: Create user + become: true + user: + name: "{{ user_name }}" + generate_ssh_key: true + register: ssh_key_info + - name: Install JDK + become: true + package: + name: "{{ java_packages }}" + state: present + +- name: Get Jenkins master installed + hosts: jenkins_masters + tasks: + - name: Get repo Jenkins + become: true + get_url: + url: https://pkg.jenkins.io/redhat-stable/jenkins.repo + dest: /etc/yum.repos.d/jenkins.repo + validate_certs: false + - name: Add Jenkins key + become: true + rpm_key: + key: https://pkg.jenkins.io/redhat-stable/jenkins.io.key + state: present + validate_certs: false + - name: Install epel-release + become: true + yum: + name: epel-release + state: present + - name: Install Jenkins and requirements + become: true + yum: + name: + - jenkins + - git + state: present + register: jenkins_installed + - name: Ensure jenkins agents are present in known_hosts file + become: true + become_user: "{{ jenkins_user_name }}" + known_hosts: + name: "{{ hostvars[item].ansible_host }}" + state: present + key: "{{ lookup('pipe', 'ssh-keyscan {{ hostvars[item].ansible_host }}') }}" + hash_host: true + with_items: "{{ groups.jenkins_agents }}" + - name: Start Jenkins + become: true + systemd: + name: jenkins + state: restarted + enabled: true + when: jenkins_installed is changed + +- name: Prepare jenkins agent + hosts: jenkins_agents + become: true + become_user: "{{ jenkins_user_name }}" + tasks: + - name: Add master publickey into authorized_key + authorized_key: + user: "{{ jenkins_user_name }}" + state: present + key: "{{ hostvars['jenkins-master-01']['ssh_key_info']['ssh_public_key'] }}" + - name: Create agent_dir + become_user: root + file: + path: "{{ jenkins_agent_dir }}" + state: directory + owner: "{{ jenkins_user_name }}" + group: "{{ jenkins_user_group }}" + - name: Add docker repo + become_user: root + get_url: + url: https://download.docker.com/linux/centos/docker-ce.repo + dest: /etc/yum.repos.d/docker-ce.repo + validate_certs: false + - name: Install some required + become_user: root + yum: + name: + - git + - python3 + - docker-ce + - docker-ce-cli + - containerd.io + state: present + - name: Update pip + become_user: root + pip: + executable: pip3 + name: pip + extra_args: --upgrade + - name: Install Ansible + become_user: root + pip: + executable: pip3 + name: + - selinux + - ansible<3.0 + state: present + - name: Reinstall Selinux + become_user: root + pip: + executable: pip3 + name: + - selinux + state: forcereinstall + - name: Add local to PATH + lineinfile: + dest: ~/.bashrc + regexp: export PATH=$PATH:/home/jenkins/.local/bin + line: export PATH=$PATH:/home/jenkins/.local/bin + - name: Create docker group + become_user: root + group: + name: docker + state: present + - name: Add jenkinsuser to dockergroup + become_user: root + user: + name: "{{ jenkins_user_name }}" + groups: docker + - name: Restart docker + become_user: root + systemd: + name: docker + state: restarted + enabled: true + - name: Install agent.jar + get_url: + url: "http://{{ hostvars['jenkins-master-01']['ansible_host'] }}:8080/jnlpJars/agent.jar" + dest: "{{ jenkins_agent_dir }}" + register: install_agent + until: install_agent is succeeded + retries: 10 + timeout: 10 + - name: Install pip molecule + ansible.builtin.pip: + executable: pip3 + name: molecule diff --git a/src/homework/09-ci/9.4/readme.md b/src/homework/09-ci/9.4/readme.md new file mode 100644 index 0000000..b80487c --- /dev/null +++ b/src/homework/09-ci/9.4/readme.md @@ -0,0 +1,57 @@ +Выполнение [домашнего задания](https://github.com/netology-code/mnt-homeworks/blob/MNT-13/09-ci-04-jenkins/README.md) +по теме "9.3. Jenkins". + +## Q/A + +### Задание 1 + +> Подготовка к выполнению +> +> 1. Создать 2 VM: для jenkins-master и jenkins-agent. +> 2. Установить jenkins при помощи playbook'a. +> 3. Запустить и проверить работоспособность. +> 4. Сделать первоначальную настройку. + +[Playbook](./infrastructure/site.yml) для установки `jenkins`. Добавлена установка `molecule` +в сравнении с оригинальным содержимым. + +// todo Доработать playbook для запуска добавления github.com в known_hosts +// todo Доработать playbook для установки python версии >= 3.8 (+pip) + +Запуск: + +```shell +ansible-playbook -i inventory/hosts.yml site.yml +``` + +```text +<...> +PLAY RECAP ********************************************************************************************* +jenkins-agent-01 : ok=18 changed=15 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +jenkins-master-01 : ok=11 changed=9 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +``` + +![jenkins_start](./img/jenkins_start.png) + +После первоначальной настройки будет выведен dashboard с настройками `jenkins`: +![jenkins_dashboard](./img/jenkins_dashboard.png) + +// todo описать отключение master от сборок +// todo описать подключение agent к сборкам + +### Задание 2 + +> Основная часть +> +> 1. Сделать Freestyle Job, который будет запускать `molecule test` из любого вашего репозитория с ролью. + +В качестве репозитория для запуска тестов будет использован [netology-devops-ansible-vector](https://github.com/Dannecron/netology-devops-ansible-vector). + + +> 2. Сделать Declarative Pipeline Job, который будет запускать `molecule test` из любого вашего репозитория с ролью. +> 3. Перенести Declarative Pipeline в репозиторий в файл `Jenkinsfile`. +> 4. Создать Multibranch Pipeline на запуск `Jenkinsfile` из репозитория. +> 5. Создать Scripted Pipeline, наполнить его скриптом из [pipeline](./pipeline). +> 6. Внести необходимые изменения, чтобы Pipeline запускал `ansible-playbook` без флагов `--check --diff`, если не установлен параметр при запуске джобы (prod_run = True), по умолчанию параметр имеет значение False и запускает прогон с флагами `--check --diff`. +> 7. Проверить работоспособность, исправить ошибки, исправленный Pipeline вложить в репозиторий в файл `ScriptedJenkinsfile`. +> 8. Отправить ссылку на репозиторий с ролью и Declarative Pipeline и Scripted Pipeline.