mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 23:32:37 +03:00
homework 9.4: fix ansible playbook, complete some part of homework
This commit is contained in:
BIN
src/homework/09-ci/9.4/img/jenkins_job_freestyle_success.png
Normal file
BIN
src/homework/09-ci/9.4/img/jenkins_job_freestyle_success.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
@@ -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:
|
||||
|
||||
@@ -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`:
|
||||

|
||||
|
||||
// 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:
|
||||

|
||||
|
||||
> 2. Сделать Declarative Pipeline Job, который будет запускать `molecule test` из любого вашего репозитория с ролью.
|
||||
> 3. Перенести Declarative Pipeline в репозиторий в файл `Jenkinsfile`.
|
||||
|
||||
Reference in New Issue
Block a user