Files
SecondBrain/90 Library/DevOps/Ansible/Modules - Ansible.md
T
2026-05-31 10:18:48 +03:00

94 lines
2.5 KiB
Markdown

---
status: stable
type: concept
tags:
- devops
- ansible
created: 2025-12-17
updated: 2026-05-07
aliases:
- Modules - Ansible
---
# Modules - Ansible
## Module Command
Выполнение команды на удаленном узле.
```yaml
- name: Display home directory
command: ls ~/
```
У самих команд могут быть параметры, например
```yaml
command: cat resolv.conf chdir=/etc # ansible сначала убедится, что мы в директории /etc или перейдет в неё, а затем выполнит команду cat
command: mkdir /folder creates=/folder # ansible создаст папку только в том случае, если её не существует
```
# Module Script
Выполняет скрипт, находящийся на хост-контроллере
```yaml
-
name: Тестовый плейбук со скриптом
hosts: all
tasks:
- name: Запуск скрипта с хоста
script: /root/script.sh -arg1 -arg2
```
## Module LineInFile
Записывает указанную строку в конец указанного файла _если точнее, ansible убеждается в наличии такой строки, но если её нет, то записывает в конец_
```yaml
-
name: Тестовый плейбук
hosts: all
tasks:
- lineinfile:
path: /etc/resolv.conf
line: 'nameserver 10.1.250.10'
```
## Module Service
Работает с сервисами сервера (systemd)
```yaml
-
name: 'Execute a script on all web server nodes'
hosts: web_nodes
tasks:
-
name: 'Start httpd service on web server nodes'
service:
state: started
```
## User
> ansible.builtin.user
Работа с пользователями системы (linux)
```yaml
-
name: 'Create new user'
hosts: all
tasks:
-
name: 'Create user John'
user:
name: John
uid: 1040
group: dev
```
## Связанные заметки
- [[File Permissions]] — модуль `user` управляет uid/gid пользователей Linux; `lineinfile` редактирует системные файлы; все это работает поверх Linux-прав доступа
- [[Super-user]] — `become: true` использует sudo; модуль `user` создаёт пользователей без root-прав для следующих задач