Compare commits
No commits in common. "411fb4a53832368fe0d6219035fc7869fa38fd96" and "bab8ef2c033278cd86d3bfca9551bc8389fa188e" have entirely different histories.
411fb4a538
...
bab8ef2c03
@ -80,18 +80,3 @@ JIT-компиляция применяется для оптимизации ч
|
||||
|
||||
Таким образом, JVM использует оба подхода: интерпретацию для гибкости и JIT-компиляцию для производительности.
|
||||
|
||||
### Как снять дамп java процесса
|
||||
|
||||
- В контейнере
|
||||
```bash
|
||||
wget -O heap-dump-tool.jar https://repo1.maven.org/maven2/com/paypal/heap-dump-tool/1.3.1/heap-dump-tool-1.3.1-all.jar
|
||||
docker ps
|
||||
docker exec mdm_vo_18_8084_node2 ps aux | grep java
|
||||
java -jar heap-dump-tool.jar capture mdm_vo_18_8084_node2 -p 42
|
||||
```
|
||||
|
||||
- На хосте
|
||||
```bash
|
||||
wget -O heap-dump-tool.jar https://repo1.maven.org/maven2/com/paypal/heap-dump-tool/1.3.1/heap-dump-tool-1.3.1-all.jar
|
||||
java -jar heap-dump-tool.jar capture -p <pid>
|
||||
```
|
@ -1186,151 +1186,4 @@ asdf: 42
|
||||
# roles/foo/meta/main.yml
|
||||
allow_duplicates: true
|
||||
```
|
||||
`allow_duplicates: true` - В этом примере `foo` будет выполнено дважды, поскольку мы явно включили эту функцию
|
||||
|
||||
### Разное
|
||||
|
||||
- `ansible-config dump | grep ROLE`
|
||||
|
||||
|
||||
#### Коллекции
|
||||
|
||||
`Ansible Collection` — это формат распространения контента Ansible, который объединяет модули, плагины, роли, плейбуки и документацию в один пакет. Коллекции упрощают организацию и повторное использование автоматизации, обеспечивая модульность и версионирование.
|
||||
|
||||
- `ansible-galaxy collection install community.general` - установить коллекцию
|
||||
```yml
|
||||
- name: пример playbook
|
||||
hosts: all
|
||||
tasks:
|
||||
- name: Используем модуль из коллекции
|
||||
community.general.ping:
|
||||
```
|
||||
|
||||
Использование в `requirements.yml`
|
||||
```yml
|
||||
collections:
|
||||
- name: community.general
|
||||
```
|
||||
|
||||
`ansible-galaxy collection install -r requirements.yml`
|
||||
|
||||
|
||||
### Молекула
|
||||
|
||||
`default scenario test matrix: dependency, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy`
|
||||
|
||||
- Жизненный цикл `molecule test` (некоторые шаги пропустил)
|
||||
- `create` - Создаётся один (или несколько) контейнеров (по умолчанию с помощью Docker, но можно использовать Vagrant, Podman и др.).
|
||||
- `prepare (опционально)` - Выполняются дополнительные задачи до применения роли (например, установка зависимостей вручную или копирование файлов).
|
||||
- `converge` - Внутри запущенного контейнера запускается Ansible-плейбук.
|
||||
- `idempotence (по умолчанию включена)` - Роль применяется повторно, и Molecule проверяет, что нет изменений (то есть роль идемпотентна).
|
||||
- `verify` - Запускаются тесты (например, на Testinfra) — проверяется, что роль настроила всё корректно: файлы на месте, сервис запущен, порты слушаются и т.д.
|
||||
- `cleanup` - (если настроено отдельно) — Molecule может сначала очистить состояние или данные перед.
|
||||
- `destroy` - Контейнеры удаляются. Тестовое окружение полностью уничтожается.
|
||||
|
||||
Также можно запускать стадии по отдельности
|
||||
|
||||
- Пример структуры
|
||||
```bash
|
||||
roles/mymegarole/
|
||||
└── molecule/
|
||||
└── default/
|
||||
├── destroy.yml
|
||||
├── prepare.yml
|
||||
├── molecule.yml
|
||||
├── converge.yml
|
||||
└── tests/
|
||||
└── test_default.py
|
||||
```
|
||||
|
||||
- `MOLECULE_DESTROY=never molecule test` - не удалять контейнер для отладки
|
||||
|
||||
Молекула при запуске тестового сценария создаёт временный инвентори с хостом, имеющим имя из блока конфигурации `molecule.yml`
|
||||
```yml
|
||||
platforms:
|
||||
- name: instance
|
||||
```
|
||||
|
||||
- `molecule init scenario default` - инициализация роли
|
||||
- `molecule converge` - запускает create, prepare, converge — контейнер остаётся запущенным
|
||||
- `molecule verify` - только проверить результат
|
||||
- `molecule destroy` - снести окружение
|
||||
- `molecule test --destroy=never`
|
||||
- `molecule test` - полный цикл (... → create → converge → verify → ... → destroy)
|
||||
- `molecule converge -- -vvv` - после `--` идут аргументы ansible
|
||||
|
||||
```bash
|
||||
molecule login # Вход в контейнер по умолчанию
|
||||
molecule login --host <instance-name> # Если несколько контейнеров
|
||||
```
|
||||
|
||||
#### Файл molecule.yml
|
||||
|
||||
- Блок `dependency` - как управлять зависимостями роли
|
||||
```yml
|
||||
dependency:
|
||||
name: galaxy
|
||||
```
|
||||
|
||||
- Блок `driver` - определяет где будет запущена тестовая среда (docker, vagrant, podman, delegated)
|
||||
```yml
|
||||
driver:
|
||||
name: docker
|
||||
```
|
||||
|
||||
- Блок `platforms` - конфигурирует виртуальные машины или контейнеры, которые будут подняты
|
||||
- `name` - имя инстанса (контейнера или VM);
|
||||
- `image` - Docker-образ;
|
||||
- `privileged` - нужен ли привилегированный режим (например, для systemd);
|
||||
- `command` - команда для запуска (например, init для systemd);
|
||||
- `pre_build_image` - использовать уже собранный образ, а не строить вручную.
|
||||
|
||||
```yml
|
||||
platforms:
|
||||
- name: instance
|
||||
image: geerlingguy/docker-centos7-ansible
|
||||
privileged: true
|
||||
command: /sbin/init
|
||||
pre_build_image: true
|
||||
```
|
||||
|
||||
- Блок `provisioner` - описывает как прогонять роль
|
||||
- `name` - ansible: указывает, что в качестве провижинера используется Ansible.
|
||||
```yml
|
||||
provisioner:
|
||||
name: ansible
|
||||
```
|
||||
|
||||
- Блок `verifier` - инструмент для проверки результата выполнения роли
|
||||
```yml
|
||||
verifier:
|
||||
name: testinfra
|
||||
lint: false
|
||||
```
|
||||
|
||||
- Блок `lint` - запускает линтеры перед тестированием
|
||||
```yml
|
||||
lint: |
|
||||
yamllint .
|
||||
ansible-lint
|
||||
```
|
||||
|
||||
#### Файл create.yml
|
||||
|
||||
Здесь можно прописать дополнительные шаги после того, как Molecule подняло контейнер/ВМ (например, установить пакеты до применения роли).
|
||||
|
||||
#### Файл converge.yml
|
||||
|
||||
Основной плейбук — Ansible применяет роль. Обычно просто включает roles: [ blackbox_exporter ].
|
||||
|
||||
#### Файл verify.yml
|
||||
|
||||
(опционально) здесь запускаются дополнительные проверки на самой машине (если не используется Testinfra/molecule verify).
|
||||
|
||||
#### Файл cleanup.yml
|
||||
|
||||
(опционально) шаг перед destroy, чтобы убрать временные файлы, логи или «очистить» состояние на хостах.
|
||||
|
||||
#### Файл destroy.yml
|
||||
|
||||
Выполняется после cleanup, перед тем как Molecule удалит инстансы (контейнеры/ВМ). В нём можно, например, стянуть артефакты, собрать логи и т. п.
|
||||
`allow_duplicates: true` - В этом примере `foo` будет выполнено дважды, поскольку мы явно включили эту функцию
|
@ -282,7 +282,6 @@
|
||||
- `reset` - используется для сброса настроек терминала и очистки экрана
|
||||
- `systemctl list-dependencies`
|
||||
- `watch -n 2 "command"` # Выполнять команду каждые 2 секунды (`watch -d` - подсвечивать изменения между обновлениями)
|
||||
- `time <command>` - время выполнения
|
||||
|
||||
---
|
||||
|
||||
@ -441,6 +440,7 @@ lvextend -l +100%FREE /dev/mapper/vg_local-root # Добавить место
|
||||
resize2fs /dev/mapper/vg_local-root # или xfs_growfs
|
||||
```
|
||||
|
||||
|
||||
### Grep
|
||||
|
||||
- `cat <filename> | grep -A 10 "<pattern>"` - вывести 10 строк ПОСЛЕ найденного совпадения
|
||||
@ -544,14 +544,4 @@ Logrotate - это системная утилита Linux, которая уп
|
||||
- `uptime` - время работы системы, пользователя, LA
|
||||
- `top`
|
||||
- `free -h`
|
||||
- `iotop` - диск
|
||||
- `io`
|
||||
- `vmstat 1` - диск (запись/чтение swap)
|
||||
- `mpstat -P ALL 1` - процессор
|
||||
- `pidstat 1` - процессор (процесс)
|
||||
- `dstat -lrvn` - диск
|
||||
- `sar -n DEV 1` - сеть
|
||||
- `atop` - мегаtop (-d детализация по дискам, -m детализация по памяти)
|
||||
- `perf`
|
||||
- `smartctl` - инфа по дискам
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user