Compare commits

...

5 Commits

Author SHA1 Message Date
c3cc24e064 Update README.md 2025-09-04 20:10:02 +03:00
8903eb7b58 WIP 2025-09-02 18:49:58 +03:00
5ed897365f WIP 2025-09-02 18:45:46 +03:00
20ece6c64a WIP 2025-09-02 18:41:04 +03:00
ccab96403b WIP 2025-09-02 18:36:46 +03:00
2 changed files with 59 additions and 16 deletions

View File

@@ -16,7 +16,7 @@ pipx install --include-deps ansible
## Ansible struktūra (Vismaz šajā situācijā) ## Ansible struktūra (Vismaz šajā situācijā)
#### `/inventory.yml` ### /inventory.yml
Inventory failā pieraksta (Un sagrupē!) visus aktuālos serverus, to IP adreses, Inventory failā pieraksta (Un sagrupē!) visus aktuālos serverus, to IP adreses,
kā arī, dažreiz aktuālos variables. kā arī, dažreiz aktuālos variables.
@@ -25,16 +25,18 @@ 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 Skat. https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html
#### `/roles/` ### /roles/
Šajā mapē nosaka atsevišķas serveru "lomas". Šajā mapē nosaka atsevišķas serveru "lomas".
Parasti visu sadala atsevišķās lomās Parasti visu sadala atsevišķās lomās (piem. webservers, dnsservers....)
#### `/main.yml` Role sākās no `tasks/main.yml`. Piem., `/roles/common/tasks/main.yml`
Faktiski šajā failā nosaka kādi roles attiecās uz kādiem hostiem.
### /main.yml
Faktiski šajā failā nosaka kādas lomas attiecās uz kādiem hostiem/grupām.
Bet, ja nemaldos, var arī vienkārši pa taisno rakstīt taskus, kas, laikam, 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. ir tas ko šī uzdevuma veidotāji vēlējās...
#### Tasks/Modules (`/roles/common/tasks/*`) ### Tasks/Modules (`/roles/common/tasks/*`)
Ansible playbook faili ir sadalīti *task*os. Ansible playbook faili ir sadalīti *task*os.
Katrā *task*ā var izsaukt vienu, vai vairākus moduļus (izmantojot `block`), Katrā *task*ā var izsaukt vienu, vai vairākus moduļus (izmantojot `block`),
@@ -46,7 +48,7 @@ Piemēram `apt` modulis, lai ielādētu package, vai
Katram modulim ir kaut kādi savi iestatījumi, Katram modulim ir kaut kādi savi iestatījumi,
tāpēc ir svarīgi skatīties dokumentāciju moduļiem. tāpēc ir svarīgi skatīties dokumentāciju moduļiem.
#### Handlers and Notify ### Handlers and Notify
Situācijā, kad izmaina kādu failu, iespējams vajag restartēt kādu servisu. Situācijā, kad izmaina kādu failu, iespējams vajag restartēt kādu servisu.
Šim nolūkam izmanto *handlers* un *notify*. Šim nolūkam izmanto *handlers* un *notify*.
@@ -79,11 +81,47 @@ tad jāizmanto ansible `flush_handlers` task.
- name: Flush handlers - name: Flush handlers
meta: flush_handlers meta: flush_handlers
``` ```
#### Templates ### Templates
Dažreiz ir vajadzība kādu failu dinamiski aizpildīt ar kādu informāciju.
Piemēram, šajā uzdevumā webserver gadījumā.
#### Vault Tam var izmantot ansible templates:
https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_templating.html
Principā izmanto ansible `template` moduli tā pat kā `copy` moduli.
Template modulis vienkārši pirms kopēšanas uz sistēmu to failu interpretēs
kā jinja 2 template failu. (Aipildīs viskautkādus variables utt.)
Templates arī parasti tur citā mapē atsevišķi no failiem
### Vault
Dažreiz vajag kādu failu vai variable šifrēt, lai tas nav pieejams plain tekstā,
piemēram, git repozitorijā.
Tam izmanto `ansible-vault`.
Failus var aizšifrēt ar `ansible-vault encrypt <filename>`
un tad rediģēt tādā pašā veidā vainu atšiftrējot
### Tags
Šis gan jau nebūs vajadzīgs
Drīzāk quality-of-life feature.
Noder lai ārtāk palaistu ansible lai atjauninātu tikai mazu daļu.
(Piem. BIND zone failu)
Atļauj noteiktus taskus atzīmēt ar "tag", un
Pēc tam laižot ansible var noteikt ar `--tags` kādus tagus laist.
https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_tags.html
### Variable files
#### Tags
## Kā laizt ansible? ## Kā laizt ansible?
@@ -103,4 +141,9 @@ Pēc tam var karināt klāt dažādus "karogus":
- `--check`, `-C` - tā saucamais "dry-run", kur parāda tikai kas mainīsies, - `--check`, `-C` - tā saucamais "dry-run", kur parāda tikai kas mainīsies,
un vai būs kādas kļūdas, bet uz gala sistēmas neko nemainīs (nestrādās ar dažiem moduļiem) un vai būs kādas kļūdas, bet uz gala sistēmas neko nemainīs (nestrādās ar dažiem moduļiem)
- `--diff`, `-D` - visos taskos parāda kas ir mainījies (piemēram, failiem `diff` formātā) - `--diff`, `-D` - visos taskos parāda kas ir mainījies (piemēram, failiem `diff` formātā)
- `-J` - prasīs ansible vault paroli
Viss kopā:
```sh
ansible-playbook -i inventory.yml main.yml -u madars -k -K -C -D -J
```

View File

@@ -1,10 +1,10 @@
- name: run common tasks - name: run common tasks
hosts: all hosts: all # uz kādu grupu/hostiem attiecās (all ir automātiski veidota grupa kas satur visus hostus)
become: true become: true # vai izmantos sudo lai visu laistu kā root
become_user: root become_user: root # uz kādu lietotāju pāriet ar sudo
gather_facts: true gather_facts: true # Faktiski nav vajadzīgs, vienkārši pirms playbook sākas, savāc daudz dažādus faktus par sistēmu, un saliek tos variabļos.
roles: roles:
- common - common # lomas mapes nosaukums, tā kā tas rakstīts /roles/ mapē
#- name: run host-specific tasks #- name: run host-specific tasks
# hosts: all # hosts: all