247 lines
3.5 KiB
Markdown
247 lines
3.5 KiB
Markdown
---
|
|
title: Ansible modules
|
|
category: Ansible
|
|
prism_languages: [yaml]
|
|
updated: 2017-10-03
|
|
---
|
|
|
|
{% raw %}
|
|
|
|
## Format
|
|
|
|
### Basic file
|
|
|
|
```yaml
|
|
---
|
|
- hosts: production
|
|
remote_user: root
|
|
tasks:
|
|
- ···
|
|
```
|
|
|
|
Place your modules inside `tasks`.
|
|
|
|
### Task formats
|
|
|
|
#### One-line
|
|
|
|
```yaml
|
|
- apt: pkg=vim state=present
|
|
```
|
|
|
|
#### Map
|
|
|
|
```yaml
|
|
- apt:
|
|
pkg: vim
|
|
state: present
|
|
```
|
|
|
|
#### Foldable scalar
|
|
|
|
```yaml
|
|
- apt: >
|
|
pkg=vim
|
|
state=present
|
|
```
|
|
|
|
Define your tasks in any of these formats. One-line format is preferred for short declarations, while maps are preferred for longer.
|
|
|
|
## Modules
|
|
|
|
### Aptitude
|
|
|
|
#### Packages
|
|
|
|
```yaml
|
|
- apt:
|
|
pkg: nodejs
|
|
state: present # absent | latest
|
|
update_cache: yes
|
|
force: no
|
|
```
|
|
|
|
#### Deb files
|
|
|
|
```yaml
|
|
- apt:
|
|
deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"
|
|
```
|
|
|
|
#### Repositories
|
|
|
|
```yaml
|
|
- apt_repository:
|
|
repo: "deb https://··· raring main"
|
|
state: present
|
|
```
|
|
|
|
#### Repository keys
|
|
|
|
```yaml
|
|
- apt_key:
|
|
id: AC40B2F7
|
|
url: "http://···"
|
|
state: present
|
|
```
|
|
|
|
### git
|
|
|
|
```yaml
|
|
- git:
|
|
repo: git://github.com/
|
|
dest: /srv/checkout
|
|
version: master
|
|
depth: 10
|
|
bare: yes
|
|
```
|
|
|
|
See: [git module](https://devdocs.io/ansible/git_module)
|
|
|
|
### git_config
|
|
|
|
```yaml
|
|
- git_config:
|
|
name: user.email
|
|
scope: global # local | system
|
|
value: hi@example.com
|
|
```
|
|
|
|
See: [git_config module](https://devdocs.io/ansible/git_config_module)
|
|
|
|
### user
|
|
|
|
```yaml
|
|
- user:
|
|
state: present
|
|
name: git
|
|
system: yes
|
|
shell: /bin/sh
|
|
groups: admin
|
|
comment: "Git Version Control"
|
|
```
|
|
|
|
See: [user module](https://devdocs.io/ansible/user_module)
|
|
|
|
### service
|
|
|
|
```yaml
|
|
- service:
|
|
name: nginx
|
|
state: started
|
|
enabled: yes # optional
|
|
```
|
|
|
|
See: [service module](https://devdocs.io/ansible/service_module)
|
|
|
|
## Shell
|
|
|
|
### shell
|
|
|
|
```yaml
|
|
- shell: apt-get install nginx -y
|
|
```
|
|
|
|
#### Extra options
|
|
|
|
```yaml
|
|
- shell: echo hello
|
|
args:
|
|
creates: /path/file # skip if this exists
|
|
removes: /path/file # skip if this is missing
|
|
chdir: /path # cd here before running
|
|
```
|
|
|
|
#### Multiline example
|
|
|
|
```yaml
|
|
- shell: |
|
|
echo "hello there"
|
|
echo "multiple lines"
|
|
```
|
|
|
|
See: [shell module](https://devdocs.io/ansible/shell_module)
|
|
|
|
### script
|
|
|
|
```yaml
|
|
- script: /x/y/script.sh
|
|
args:
|
|
creates: /path/file # skip if this exists
|
|
removes: /path/file # skip if this is missing
|
|
chdir: /path # cd here before running
|
|
```
|
|
|
|
See: [script module](https://devdocs.io/ansible/script_module)
|
|
|
|
## Files
|
|
|
|
### file
|
|
|
|
```yaml
|
|
- file:
|
|
path: /etc/dir
|
|
state: directory # file | link | hard | touch | absent
|
|
|
|
# Optional:
|
|
owner: bin
|
|
group: wheel
|
|
mode: 0644
|
|
recurse: yes # mkdir -p
|
|
force: yes # ln -nfs
|
|
```
|
|
|
|
See: [file module](https://devdocs.io/ansible/file_module)
|
|
|
|
### copy
|
|
|
|
```yaml
|
|
- copy:
|
|
src: /app/config/nginx.conf
|
|
dest: /etc/nginx/nginx.conf
|
|
|
|
# Optional:
|
|
owner: user
|
|
group: user
|
|
mode: 0644
|
|
backup: yes
|
|
```
|
|
|
|
See: [copy module](https://devdocs.io/ansible/copy_module)
|
|
|
|
### template
|
|
|
|
```yaml
|
|
- template:
|
|
src: config/redis.j2
|
|
dest: /etc/redis.conf
|
|
|
|
# Optional:
|
|
owner: user
|
|
group: user
|
|
mode: 0644
|
|
backup: yes
|
|
```
|
|
|
|
See: [template module](https://devdocs.io/ansible/template_module)
|
|
|
|
## Local actions
|
|
|
|
### local_action
|
|
|
|
```yaml
|
|
- name: do something locally
|
|
local_action: shell echo hello
|
|
```
|
|
|
|
### debug
|
|
|
|
```yaml
|
|
- debug:
|
|
msg: "Hello {{ var }}"
|
|
```
|
|
|
|
See: [debug module](https://devdocs.io/ansible/debug_module)
|
|
{% endraw %}
|
|
|