From 3719f701eda6fba9f18a02160a929858ea654a8b Mon Sep 17 00:00:00 2001 From: dannc Date: Mon, 5 Sep 2022 10:59:52 +0700 Subject: [PATCH] homework 9.4: fix ansible playbook, complete some part of homework --- src/homework/05-virtualization/5.3/readme.md | 2 +- .../9.4/img/jenkins_job_freestyle_success.png | Bin 0 -> 39408 bytes .../09-ci/9.4/infrastructure/site.yml | 21 +++++++------- src/homework/09-ci/9.4/readme.md | 26 ++++++++++++++++-- 4 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 src/homework/09-ci/9.4/img/jenkins_job_freestyle_success.png diff --git a/src/homework/05-virtualization/5.3/readme.md b/src/homework/05-virtualization/5.3/readme.md index 5d4d649..b516eff 100644 --- a/src/homework/05-virtualization/5.3/readme.md +++ b/src/homework/05-virtualization/5.3/readme.md @@ -212,4 +212,4 @@ ansible-playbook publish.yml <...> ``` -Образ доступен по ссылке [gub.docker.com](https://hub.docker.com/layers/208296992/dannecron/netology-devops-nginx/ansible/images/sha256-e007739a276cbc1f556b674b1ec142360afe4fa35364f3a8b464e74786da4e3d?context=repo) \ No newline at end of file +Образ доступен по ссылке [hub.docker.com](https://hub.docker.com/layers/208296992/dannecron/netology-devops-nginx/ansible/images/sha256-e007739a276cbc1f556b674b1ec142360afe4fa35364f3a8b464e74786da4e3d?context=repo) diff --git a/src/homework/09-ci/9.4/img/jenkins_job_freestyle_success.png b/src/homework/09-ci/9.4/img/jenkins_job_freestyle_success.png new file mode 100644 index 0000000000000000000000000000000000000000..b1e9989f3da6fce0db13befaf66df5503e8bde18 GIT binary patch literal 39408 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 YcCxgTZuw~xk}`jY`D1i@WZIYi0u{*WEdT%j literal 0 HcmV?d00001 diff --git a/src/homework/09-ci/9.4/infrastructure/site.yml b/src/homework/09-ci/9.4/infrastructure/site.yml index bc7827d..aca085c 100644 --- a/src/homework/09-ci/9.4/infrastructure/site.yml +++ b/src/homework/09-ci/9.4/infrastructure/site.yml @@ -63,7 +63,8 @@ state: restarted enabled: true when: jenkins_installed is changed - - name: ensure github.com is a known host + - name: Ensure github.com is a known host + become: true lineinfile: dest: ~/.ssh/known_hosts create: yes @@ -78,11 +79,11 @@ 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: 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: @@ -141,6 +142,9 @@ src: /usr/local/bin/pip3.8 dest: /usr/bin/pip3 state: link + - name: Add local to path + become_user: root + ansible.builtin.shell: echo "PATH=$PATH:/usr/local/bin" > /etc/environment - name: Update pip become_user: root pip: @@ -162,11 +166,6 @@ 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: diff --git a/src/homework/09-ci/9.4/readme.md b/src/homework/09-ci/9.4/readme.md index d3bc08c..bdc965e 100644 --- a/src/homework/09-ci/9.4/readme.md +++ b/src/homework/09-ci/9.4/readme.md @@ -16,7 +16,7 @@ с оригинальным `playbook`: - На мастере и агенте `github.com` добавлен в `known_hosts` пользователя `jenkins` - На агенте установлен `python3.8` из исходников -- Добавлена установка `molecule` +- Добавлена установка `molecule` и других модулей для запуска тестирования ролей ansible Запуск: @@ -36,8 +36,19 @@ jenkins-master-01 : ok=11 changed=9 unreachable=0 failed=0 s После первоначальной настройки будет выведен dashboard с настройками `jenkins`: ![jenkins_dashboard](./img/jenkins_dashboard.png) -// todo описать отключение master от сборок -// todo описать подключение agent к сборкам +Следующим шагом необходимо отключить мастер-ноду от процесса запуска сборок. +Для этого достаточно перейти на страницу `/computer/(built-in)/configure` и выставить настройку +`Количество процессов-исполнителей` в 0 и сохранить. + +Добавление нового агента возможно на странице `/computer/new`. +Важные настройки, которые необходимо выставить: +- `Корень удаленной ФС` - нужно задать значение из переменной ansible `jenkins_agent_dir` +- `Количество процессов-исполнителей` - лучше задать 2 (по умолчанию установлен 1) +- `Способ запуска` - нужно выбрать `Launch agent via execution of comand on the controller`. +Команда выглядит следующим образом: + ```shell + ssh {{jenkins-agent-01}} java -jar {{jenkins_agent_dir}}/agent.jar + ``` ### Задание 2 @@ -47,6 +58,15 @@ jenkins-master-01 : ok=11 changed=9 unreachable=0 failed=0 s В качестве репозитория для запуска тестов будет использован [netology-devops-ansible-vector](https://github.com/Dannecron/netology-devops-ansible-vector). +Создание нового job находится на странице `/view/all/newJob`. Основные конфигурации, которые необходимо проставить: +- `Управление исходным кодом` - `Git`. Так же необходимо создать новый `Credential` с пользователем `git` и любым приватным ключом, +прописанным у пользователя `github`. Ещё очень важно, чтобы `github.com` был добавлен в `known_host` пользователя `jenkins` +на всех машинах. +- `Триггеры сборки` - можно активировать `Опрашивать SCM об изменениях` и выставить рекомендованное расписание `H * * * *` (раз в час). +- `Сборка` - достаточно добавить только один шаг сборки `Выполнить команду shell` и добавить в неё `molecule test` + +Результат job: +![jenkins_job_freestyle_success](./img/jenkins_job_freestyle_success.png) > 2. Сделать Declarative Pipeline Job, который будет запускать `molecule test` из любого вашего репозитория с ролью. > 3. Перенести Declarative Pipeline в репозиторий в файл `Jenkinsfile`.