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 0000000..b1e9989 Binary files /dev/null and b/src/homework/09-ci/9.4/img/jenkins_job_freestyle_success.png differ 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`.