homework 9.4: fix ansible playbook, complete some part of homework

This commit is contained in:
2022-09-05 10:59:52 +07:00
parent bfa45b409c
commit 3719f701ed
4 changed files with 34 additions and 15 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

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

View File

@@ -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`.