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:
@@ -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)
|
Образ доступен по ссылке [hub.docker.com](https://hub.docker.com/layers/208296992/dannecron/netology-devops-nginx/ansible/images/sha256-e007739a276cbc1f556b674b1ec142360afe4fa35364f3a8b464e74786da4e3d?context=repo)
|
||||||
|
|||||||
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
|
state: restarted
|
||||||
enabled: true
|
enabled: true
|
||||||
when: jenkins_installed is changed
|
when: jenkins_installed is changed
|
||||||
- name: ensure github.com is a known host
|
- name: Ensure github.com is a known host
|
||||||
|
become: true
|
||||||
lineinfile:
|
lineinfile:
|
||||||
dest: ~/.ssh/known_hosts
|
dest: ~/.ssh/known_hosts
|
||||||
create: yes
|
create: yes
|
||||||
@@ -78,11 +79,11 @@
|
|||||||
become: true
|
become: true
|
||||||
become_user: "{{ jenkins_user_name }}"
|
become_user: "{{ jenkins_user_name }}"
|
||||||
tasks:
|
tasks:
|
||||||
# - name: Add master publickey into authorized_key
|
- name: Add master publickey into authorized_key
|
||||||
# authorized_key:
|
authorized_key:
|
||||||
# user: "{{ jenkins_user_name }}"
|
user: "{{ jenkins_user_name }}"
|
||||||
# state: present
|
state: present
|
||||||
# key: "{{ hostvars['jenkins-master-01']['ssh_key_info']['ssh_public_key'] }}"
|
key: "{{ hostvars['jenkins-master-01']['ssh_key_info']['ssh_public_key'] }}"
|
||||||
- name: Create agent_dir
|
- name: Create agent_dir
|
||||||
become_user: root
|
become_user: root
|
||||||
file:
|
file:
|
||||||
@@ -141,6 +142,9 @@
|
|||||||
src: /usr/local/bin/pip3.8
|
src: /usr/local/bin/pip3.8
|
||||||
dest: /usr/bin/pip3
|
dest: /usr/bin/pip3
|
||||||
state: link
|
state: link
|
||||||
|
- name: Add local to path
|
||||||
|
become_user: root
|
||||||
|
ansible.builtin.shell: echo "PATH=$PATH:/usr/local/bin" > /etc/environment
|
||||||
- name: Update pip
|
- name: Update pip
|
||||||
become_user: root
|
become_user: root
|
||||||
pip:
|
pip:
|
||||||
@@ -162,11 +166,6 @@
|
|||||||
name:
|
name:
|
||||||
- selinux
|
- selinux
|
||||||
state: forcereinstall
|
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
|
- name: Create docker group
|
||||||
become_user: root
|
become_user: root
|
||||||
group:
|
group:
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
с оригинальным `playbook`:
|
с оригинальным `playbook`:
|
||||||
- На мастере и агенте `github.com` добавлен в `known_hosts` пользователя `jenkins`
|
- На мастере и агенте `github.com` добавлен в `known_hosts` пользователя `jenkins`
|
||||||
- На агенте установлен `python3.8` из исходников
|
- На агенте установлен `python3.8` из исходников
|
||||||
- Добавлена установка `molecule`
|
- Добавлена установка `molecule` и других модулей для запуска тестирования ролей ansible
|
||||||
|
|
||||||
Запуск:
|
Запуск:
|
||||||
|
|
||||||
@@ -36,8 +36,19 @@ jenkins-master-01 : ok=11 changed=9 unreachable=0 failed=0 s
|
|||||||
После первоначальной настройки будет выведен dashboard с настройками `jenkins`:
|
После первоначальной настройки будет выведен 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
|
### Задание 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).
|
В качестве репозитория для запуска тестов будет использован [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` из любого вашего репозитория с ролью.
|
> 2. Сделать Declarative Pipeline Job, который будет запускать `molecule test` из любого вашего репозитория с ролью.
|
||||||
> 3. Перенести Declarative Pipeline в репозиторий в файл `Jenkinsfile`.
|
> 3. Перенести Declarative Pipeline в репозиторий в файл `Jenkinsfile`.
|
||||||
|
|||||||
Reference in New Issue
Block a user