WIP
This commit is contained in:
parent
a8d606a3d4
commit
926dff5e71
86
README.md
86
README.md
@ -1,2 +1,88 @@
|
|||||||
# euro-ansible
|
# euro-ansible
|
||||||
|
|
||||||
|
## Installing ansible
|
||||||
|
|
||||||
|
Ansible ir jālādē tikai uz ierīces kurā atrodas ansible playbooki.
|
||||||
|
Uz gala iekārtas vajadzīgs arī python, bet tas parasti jau ir ielādēts.
|
||||||
|
|
||||||
|
Mana metode ansible instalēšanai (Ubuntu):
|
||||||
|
```bash
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install pipx
|
||||||
|
pipx ensurepath
|
||||||
|
pipx install --include-deps ansible
|
||||||
|
```
|
||||||
|
(Source: https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html )
|
||||||
|
|
||||||
|
## Ansible struktūra (Vismaz šajā situācijā)
|
||||||
|
|
||||||
|
### `/inventory.yml`
|
||||||
|
Inventory failā pieraksta (Un sagrupē!) visus aktuālos serverus, to IP adreses,
|
||||||
|
kā arī, dažreiz aktuālos variables.
|
||||||
|
|
||||||
|
Šajā piemērā inventory fails ir YAML formātā, kas ir daudz salasāmāks.
|
||||||
|
Bet ir iespējams ka inventory fails var būt dots INI formātā.
|
||||||
|
|
||||||
|
Skat. https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html
|
||||||
|
|
||||||
|
### `/roles/`
|
||||||
|
Šajā mapē nosaka atsevišķas serveru "lomas".
|
||||||
|
Parasti visu sadala atsevišķās lomās
|
||||||
|
|
||||||
|
### `/main.yml`
|
||||||
|
Faktiski šajā failā nosaka kādi roles attiecās uz kādiem hostiem.
|
||||||
|
Bet, ja nemaldos, var arī vienkārši pa taisno rakstīt taskus, kas, laikam,
|
||||||
|
ir tas ko šī uzdevuma veidotāji vēlējās.
|
||||||
|
|
||||||
|
### Tasks/Modules (`/roles/common/tasks/*`)
|
||||||
|
|
||||||
|
Ansible playbook faili ir sadalīti *task*os.
|
||||||
|
Katrā *task*ā var izsaukt vienu, vai vairākus moduļus (izmantojot `block`),
|
||||||
|
lai izpildītu kādu uzdevumu.
|
||||||
|
|
||||||
|
Piemēram `apt` modulis, lai ielādētu package, vai
|
||||||
|
`copy` modulis, lai pārkopētu failu uz hostu, u.tml.
|
||||||
|
|
||||||
|
Katram modulim ir kaut kādi savi iestatījumi,
|
||||||
|
tāpēc ir svarīgi skatīties dokumentāciju moduļiem.
|
||||||
|
|
||||||
|
### Handlers and Notify
|
||||||
|
|
||||||
|
Situācijā, kad izmaina kādu failu, iespējams vajag restartēt kādu servisu.
|
||||||
|
Šim nolūkam izmanto *handlers* un *notify*.
|
||||||
|
|
||||||
|
|
||||||
|
#### Handlers
|
||||||
|
Handleri, šajā situācijā, atrodās iekš `/roles/common/handlers/main.yml`
|
||||||
|
|
||||||
|
Šis fails ir strukturēts tā pat kā parasti playbook *task* faili,
|
||||||
|
bet šajā situācijā katrs *task* darbojās kā "handler",
|
||||||
|
kuru var izsaukt no jebkura taska, ja tajā kaut kas ir mainījies.
|
||||||
|
|
||||||
|
(Handleri netiek laisti, ja tos neizsauc UN ja nav izmaiņu!)
|
||||||
|
|
||||||
|
**Kā izsauc handleri?**
|
||||||
|
Pie kāda task var piesaistīt handler, tam pieliekot `notify: <handnler name>`
|
||||||
|
(Piemērs iekš `/roles/common/tasks/syslog.yml`)
|
||||||
|
|
||||||
|
**Kad handleri tiek laisti?**
|
||||||
|
Vai handleris tikts laists, tiek noteikts pēc attiecīgā taska exit statusa!
|
||||||
|
Katram *task*am ir beigu statuss. Parasti - OK/CHANGED/SKIPPED
|
||||||
|
|
||||||
|
Ja task beidzās kā `CHANGED`, tad handleris tiks palaists,
|
||||||
|
bet ja ir `OK` vai `SKIPPED`, tad, nē.
|
||||||
|
|
||||||
|
Visi handleri tiek palaisti pašā playbook beigās!
|
||||||
|
Ja ir vajadzība visus, līdz šim izsauktos, handlerus palaist ātrāk,
|
||||||
|
tad jāizmanto ansible `flush_handlers` task.
|
||||||
|
|
||||||
|
```yml
|
||||||
|
- name: Flush handlers
|
||||||
|
meta: flush_handlers
|
||||||
|
```
|
||||||
|
|
||||||
|
## Kā laizt ansible?
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ansible-playbook
|
||||||
|
```
|
||||||
|
10
main.yml
10
main.yml
@ -6,8 +6,8 @@
|
|||||||
roles:
|
roles:
|
||||||
- common
|
- common
|
||||||
|
|
||||||
#- name: run host-specific tasks
|
#- name: run host-specific tasks
|
||||||
# hosts: all
|
# hosts: all
|
||||||
# become: true
|
# become: true
|
||||||
# become_user: root
|
# become_user: root
|
||||||
# roles: "{{inventory_hostname}}"
|
# roles: "{{inventory_hostname}}"
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
- name: Install ldap packages
|
|
||||||
apt:
|
|
||||||
name:
|
|
||||||
- something-something-ldap # es neatceros nevienu ldap package ;-;
|
|
||||||
- something-else-ldap
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: Copy config files
|
|
||||||
copy:
|
|
||||||
src: "/etc/kaut-kas-ldap/{{}}.conf"
|
|
Loading…
x
Reference in New Issue
Block a user