mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-10-04 16:48:02 +03:00
add example playbook
This commit is contained in:
parent
487db1817e
commit
30b7e84f26
@ -6,14 +6,73 @@ contributors:
|
|||||||
filename: LearnAnsible.txt
|
filename: LearnAnsible.txt
|
||||||
---
|
---
|
||||||
|
|
||||||
## Ansible: the easiest orchestration tool
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
---
|
---
|
||||||
"{{ Explanation: Why Ansible and detailed Intro }}" written in the second part of document
|
"{{ Ansible }}" is an orchestration tool written in Python.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Example
|
||||||
|
An example playbook to install apache and configure log level
|
||||||
|
```yml
|
||||||
|
---
|
||||||
|
- hosts: apache
|
||||||
|
|
||||||
|
vars:
|
||||||
|
apache2_log_level: "warn"
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: restart apache
|
||||||
|
service:
|
||||||
|
name: apache2
|
||||||
|
state: restarted
|
||||||
|
enabled: True
|
||||||
|
notify:
|
||||||
|
- Wait for instances to listen on port 80
|
||||||
|
become: True
|
||||||
|
|
||||||
|
- name: reload apache
|
||||||
|
service:
|
||||||
|
name: apache2
|
||||||
|
state: reloaded
|
||||||
|
notify:
|
||||||
|
- Wait for instances to listen on port 80
|
||||||
|
become: True
|
||||||
|
|
||||||
|
- name: Wait for instances to listen on port 80
|
||||||
|
wait_for:
|
||||||
|
state: started
|
||||||
|
host: localhost
|
||||||
|
port: 80
|
||||||
|
timeout: 15
|
||||||
|
delay: 5
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
cache_valid_time: 7200
|
||||||
|
become: True
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
apt:
|
||||||
|
name={{ item }}
|
||||||
|
with_items:
|
||||||
|
- apache2
|
||||||
|
- logrotate
|
||||||
|
notify:
|
||||||
|
- restart apache
|
||||||
|
become: True
|
||||||
|
|
||||||
|
- name: Configure apache2 log level
|
||||||
|
lineinfile:
|
||||||
|
dest: /etc/apache2/apache2.conf
|
||||||
|
line: "LogLevel {{ apache2_log_level }}"
|
||||||
|
regexp: "^LogLevel"
|
||||||
|
notify:
|
||||||
|
- reload apache
|
||||||
|
become: True
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
```bash
|
```bash
|
||||||
@ -29,7 +88,7 @@ $ apt-get install ansible
|
|||||||
|
|
||||||
### Your first ansible command (shell execution)
|
### Your first ansible command (shell execution)
|
||||||
```bash
|
```bash
|
||||||
# This command ping the localhost (defined in default inventory /etc/ansible/hosts)
|
# This command ping the localhost (defined in default inventory: /etc/ansible/hosts)
|
||||||
$ ansible -m ping localhost
|
$ ansible -m ping localhost
|
||||||
# you should see this output
|
# you should see this output
|
||||||
localhost | SUCCESS => {
|
localhost | SUCCESS => {
|
||||||
@ -231,12 +290,15 @@ For now you should know that CLI variables have the top priority.
|
|||||||
You should also know, that a nice way to pool some data is a **lookup**
|
You should also know, that a nice way to pool some data is a **lookup**
|
||||||
|
|
||||||
### Lookups
|
### Lookups
|
||||||
|
Awesome tool to query data from various sources!!! Awesome!
|
||||||
query from:
|
query from:
|
||||||
|
|
||||||
* pipe
|
* pipe (load shell command output into variable!)
|
||||||
* file
|
* file
|
||||||
* stream
|
* stream
|
||||||
* etcd
|
* etcd
|
||||||
|
* password management tools
|
||||||
|
* url
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# read playbooks/lookup.yml
|
# read playbooks/lookup.yml
|
||||||
|
Loading…
Reference in New Issue
Block a user