94 lines
2.5 KiB
Markdown
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-прав для следующих задач |