8th exercise: loops

This commit is contained in:
Cedric Girard 2018-08-01 17:30:44 +02:00
parent 284ce6f9e0
commit cf622c071b
10 changed files with 102 additions and 0 deletions

21
80.Loops/80.Loops.md Normal file
View File

@ -0,0 +1,21 @@
# 80 - Loops
This exercise makes you use loops to avoid repetition.
## Playbook Creation
Create a playbook following the given specs:
* Run on host group `lab`
* Copy provided `File1.txt`, `File2.txt` and `File3.txt` to `/tmp` on each host
* Use only one task
## Validation
Run the playbook and make needed changes until your playbook run as needed.
To validate, run the following command. It should return an `ok` state for each host in the `lab` group:
```bash
ansible-playbook -i ../hosts solution/validate.yml
```
There is a working playbook in `solution/solution.yml`

9
80.Loops/File1.txt Normal file
View File

@ -0,0 +1,9 @@
Sit facilisis tortor at rhoncus nisl, vel a varius. Ut, duis suspendisse in, tempor etiam posuere ve, mi pede laoreet. Nisi nonummy cras, pulvinar consequat ut. Aliquet aliquet dictum ut turpis consectetuer tincidunt. Cras torquent lobortis pretium euismod lacinia. Per, congue mi, class consequat consequat magna a integer ac dui mi. Metus nostra in interdum duis eu consectetuer. Augue sociis ac bibendum nostra, arcu vel. Vestibulum tempus, proin magnis malesuada vivamus sem mi. Litora cubilia, eu ac elit elementum ve ad. Venenatis odio pede enim dis eros felis ultricies arcu. Eleifend conubia maecenas luctus inceptos massa. Parturient.
Nisi gravida lacus odio fusce, nostra pellentesque. Curae convallis natoque pede nisi odio dis pede in consectetuer egestas. Fusce sociis netus integer, dictum. Id at habitasse potenti, purus. Quam adipiscing in, tincidunt. Eget ac curae ut pulvinar. Tortor fringilla nascetur sociis parturient pellentesque. Nonummy porta nisl nullam conubia commodo sociis in mauris aenean, duis, mi nisl auctor lacinia penatibus ante nisi. Duis sociosqu parturient phasellus eget quis netus mi a urna massa. Phasellus platea dolor vel ante. Orci cum elementum taciti bibendum ante, placerat. Quis ac tristique a cum vulputate vel. Turpis quam. Ve nibh ac vitae ut auctor egestas lacinia pretium varius aenean dapibus.
Turpis massa adipiscing laoreet vel ornare mi, elit habitant justo proin mattis. Egestas amet diam penatibus venenatis netus in ac elementum mi. Integer sollicitudin gravida. Interdum in, neque sollicitudin. Lectus ultrices est. Sollicitudin ut netus consectetuer facilisis massa habitant risus quam natoque porta mi facilisi euismod. Montes, duis at elit sociosqu donec blandit id ve ac elit arcu urna adipiscing ornare. A, sagittis enim per id pede lobortis suspendisse, placerat, quam lacinia. Varius euismod, habitasse. Consequat viverra, sollicitudin auctor ad accumsan suscipit, sodales netus. Quam, sed primis mauris mi ante nascetur. Felis sed.
Ad, convallis curabitur nulla at a nisl magna. Fusce senectus augue eu ut nulla sapien vitae netus pharetra. Adipiscing mus massa ornare. Quis blandit erat, placerat sem odio per urna placerat. Massa habitant dolor dapibus. Eget pede amet est porta posuere. Mattis eu id montes at ante malesuada lorem, velit pretium non, ut suscipit sit, iaculis id. Donec pharetra nibh torquent sagittis iaculis velit. Nec leo ve tempus interdum dapibus consectetuer dignissim taciti id. Porttitor augue. Bibendum cum, luctus ultrices adipiscing congue amet ut elit rutrum aptent nulla, parturient. Conubia ut, enim dictumst fames. Sit nascetur integer, nullam lacus parturient laoreet quis hymenaeos.
Congue. Lacus nibh per duis molestie felis proin sociis. Vivamus justo arcu, nonummy id, quam nibh metus. A parturient cum, nulla leo amet per facilisis cursus nunc arcu nulla natoque auctor. Magna vestibulum quam mauris feugiat lacinia nostra eu hymenaeos. Inceptos natoque egestas hendrerit dui elementum cras, est. Lacus posuere habitant aptent eget diam ad ante vitae rutrum fermentum vestibulum feugiat sem penatibus hac. Malesuada hac risus justo, lacinia justo per netus blandit aptent. Vitae amet a netus nonummy nullam erat magnis et per. Accumsan lobortis, donec a nisi ve inceptos euismod. Curabitur. Nulla.

9
80.Loops/File2.txt Normal file
View File

@ -0,0 +1,9 @@
Ut fames urna pretium diam, mollis. Fringilla. Nullam dignissim. Quam. Libero tellus eu vehicula lectus, integer odio. Elit consectetuer ad morbi eni eget in arcu suspendisse. Diam aliquam id, commodo. Scelerisque cras, duis dapibus. Euismod diam, pellentesque. Urna. Diam parturient nibh fames iaculis ante, nisi felis ad massa. Aenean eu vivamus amet, ad duis viverra conubia ligula. Habitant cursus suscipit ullamcorper inceptos, tristique a est ridiculus aptent sagittis parturient varius. Eget donec volutpat cras dis cursus praesent mus lacinia nostra, ac. Blandit, dis ad. Lorem hac elit ut non eu magnis cum sapien venenatis pulvinar litora erat eget. Curae suspendisse bibendum. Gravida eu ad ornare cras aenean adipiscing praesent orci congue odio, id. At quam ullamcorper iaculis nam diam vehicula. Dui dictum ad sapien habitant fringilla a dolor ut. Nec et.
Morbi et porttitor quis, eros non eros. Amet aenean litora inceptos. Elementum morbi, nostra. Luctus at cum urna sollicitudin mi class scelerisque sem. Nisi. Gravida, nunc eros. Proin tincidunt. Netus fringilla. Ac ut quam fermentum. Placerat ante nonummy netus massa enim nam. Morbi posuere penatibus bibendum sapien sociis interdum. Aenean convallis netus hymenaeos elementum vestibulum diam semper sit urna habitant. Justo ve imperdiet a risus.
Enim aliquet ad, auctor. Ad. Quis odio, fringilla in. Massa viverra aptent. Ut fringilla vestibulum, mus metus cum. Proin nunc egestas, non, parturient ve, pede. Phasellus parturient. Pede consequat cum curae, nam erat nulla feugiat consequat urna luctus penatibus lacus. Sed ad ante eu. Eni ante sollicitudin parturient quis fusce rhoncus facilisi ornare, tortor torquent ut. Duis. Mauris facilisis etiam. Lorem ad arcu, fringilla turpis inceptos egestas pretium litora orci eu duis. Erat quam facilisis senectus, luctus cras etiam condimentum eros. Ultrices sollicitudin, sociis nulla vivamus. Primis vulputate sagittis felis cras. Orci parturient dis metus nonummy orci, a urna parturient erat platea mi curabitur scelerisque.
Sodales nulla ipsum porta potenti. Enim tempor, hendrerit neque amet molestie inceptos donec potenti primis, at malesuada proin elementum proin ultrices ve. Posuere ligula, sed nonummy, sociosqu. Integer ad, lobortis posuere, egestas tellus dis. Netus fames est quis netus penatibus mauris amet at eros facilisi magna laoreet quis. Vulputate. Luctus curabitur curae dolor luctus. Quis morbi iaculis eget sem velit conubia enim, ultrices massa mi. Ac, dignissim ipsum eget metus malesuada vulputate ipsum malesuada amet nibh aliquam. Sapien tellus molestie. Mollis magnis rhoncus in id duis montes mattis gravida orci est vitae. Est eu egestas nunc. Proin velit potenti luctus diam aenean.
Mi, aptent id, urna amet ipsum vel nibh. Cubilia odio ligula aliquam mi cubilia quis, habitant. Cras morbi natoque aenean dui varius. Per sed venenatis mattis primis, lacus vel convallis, sagittis, auctor. Quis arcu. Purus et libero sociosqu parturient tortor. Iaculis. Class mi at nibh. Vestibulum arcu platea at. Proin. Ut nunc interdum leo. Dolor porta, ornare sociis netus mi tristique a fringilla felis, urna. Sit ad pede mus libero orci neque aliquet nisl, ad pellentesque feugiat. Rutrum a, habitant enim suscipit placerat curae est quis, sed. Euismod pede ve curae rutrum platea gravida conubia nisi facilisi.

9
80.Loops/File3.txt Normal file
View File

@ -0,0 +1,9 @@
Enim quis fringilla tempus, lorem semper justo tristique. Placerat. Adipiscing aenean, bibendum elementum eu primis iaculis in. Et. Ut fringilla mi. Arcu est commodo justo, nisi a etiam mi fames. Morbi neque primis accumsan scelerisque dui. Fusce ad tellus morbi ac ante lacus torquent, at, scelerisque. Euismod nunc rhoncus. Vestibulum sollicitudin integer, elit montes sociis quisque, gravida curabitur pede potenti iaculis elementum leo. Neque ante enim. Eleifend leo, feugiat. Duis risus augue, magna dictum habitasse. Lacus sollicitudin velit pede etiam dapibus.
Ipsum. Lectus. Iaculis massa sed netus. Aenean malesuada etiam erat curae tempor mi torquent sed. Conubia ve, erat velit at id risus nam sodales velit, odio venenatis suscipit. Nulla ac hymenaeos diam, eget risus tempor convallis in, elementum a leo habitasse mollis. Nunc litora nonummy sodales eros inceptos dolor hymenaeos.
Odio quam, netus fringilla placerat ut suspendisse. Rutrum in lacus sollicitudin curabitur litora eget ornare. Quam volutpat natoque at fringilla. Ad felis hymenaeos sit blandit eros ve. At est neque, etiam. Posuere consequat eni lorem feugiat. Tincidunt porta. Cursus, fermentum. Pellentesque rutrum semper, amet per. Tempor vitae dictumst venenatis sit risus etiam, nisi, donec, interdum quis litora. Turpis. Interdum est. Tellus dictumst, id magnis vulputate id. Quis justo netus hendrerit ultricies. Elit id curabitur rhoncus, sociis velit facilisi dis.
Viverra turpis, purus commodo amet et risus in faucibus eget. Lorem varius. Class auctor ad inceptos posuere urna. Sollicitudin suscipit felis netus turpis per, adipiscing vestibulum ad sociis. Eu a erat in purus magnis. Donec malesuada magna dignissim cubilia est varius. Adipiscing dapibus non. Dictumst. Elementum. Ultricies duis, nam quis conubia ve mus. At erat viverra nulla purus mauris aptent tincidunt mi, elementum. Nullam. Malesuada magna purus mauris lacus gravida lacus aliquet lacinia elementum lobortis rutrum.
Ad. Metus, nam arcu integer ut, eros praesent. Morbi adipiscing. Ad dictum in, odio tempor ante, justo. Quam justo augue etiam sit hymenaeos, semper litora, inceptos ullamcorper eleifend, imperdiet. Aliquet pede quis augue ut. Vivamus tempus, hac ante at ornare tristique accumsan, ut. Elit hymenaeos convallis adipiscing amet mauris euismod elit mus placerat natoque. Eu magna lacus dapibus odio, eros, in mollis et, luctus lacinia cubilia aptent. Elit platea, hymenaeos id, aenean faucibus. Fames ac ve nisl. Potenti pellentesque dignissim congue purus vestibulum aliquam.

View File

@ -0,0 +1,9 @@
Sit facilisis tortor at rhoncus nisl, vel a varius. Ut, duis suspendisse in, tempor etiam posuere ve, mi pede laoreet. Nisi nonummy cras, pulvinar consequat ut. Aliquet aliquet dictum ut turpis consectetuer tincidunt. Cras torquent lobortis pretium euismod lacinia. Per, congue mi, class consequat consequat magna a integer ac dui mi. Metus nostra in interdum duis eu consectetuer. Augue sociis ac bibendum nostra, arcu vel. Vestibulum tempus, proin magnis malesuada vivamus sem mi. Litora cubilia, eu ac elit elementum ve ad. Venenatis odio pede enim dis eros felis ultricies arcu. Eleifend conubia maecenas luctus inceptos massa. Parturient.
Nisi gravida lacus odio fusce, nostra pellentesque. Curae convallis natoque pede nisi odio dis pede in consectetuer egestas. Fusce sociis netus integer, dictum. Id at habitasse potenti, purus. Quam adipiscing in, tincidunt. Eget ac curae ut pulvinar. Tortor fringilla nascetur sociis parturient pellentesque. Nonummy porta nisl nullam conubia commodo sociis in mauris aenean, duis, mi nisl auctor lacinia penatibus ante nisi. Duis sociosqu parturient phasellus eget quis netus mi a urna massa. Phasellus platea dolor vel ante. Orci cum elementum taciti bibendum ante, placerat. Quis ac tristique a cum vulputate vel. Turpis quam. Ve nibh ac vitae ut auctor egestas lacinia pretium varius aenean dapibus.
Turpis massa adipiscing laoreet vel ornare mi, elit habitant justo proin mattis. Egestas amet diam penatibus venenatis netus in ac elementum mi. Integer sollicitudin gravida. Interdum in, neque sollicitudin. Lectus ultrices est. Sollicitudin ut netus consectetuer facilisis massa habitant risus quam natoque porta mi facilisi euismod. Montes, duis at elit sociosqu donec blandit id ve ac elit arcu urna adipiscing ornare. A, sagittis enim per id pede lobortis suspendisse, placerat, quam lacinia. Varius euismod, habitasse. Consequat viverra, sollicitudin auctor ad accumsan suscipit, sodales netus. Quam, sed primis mauris mi ante nascetur. Felis sed.
Ad, convallis curabitur nulla at a nisl magna. Fusce senectus augue eu ut nulla sapien vitae netus pharetra. Adipiscing mus massa ornare. Quis blandit erat, placerat sem odio per urna placerat. Massa habitant dolor dapibus. Eget pede amet est porta posuere. Mattis eu id montes at ante malesuada lorem, velit pretium non, ut suscipit sit, iaculis id. Donec pharetra nibh torquent sagittis iaculis velit. Nec leo ve tempus interdum dapibus consectetuer dignissim taciti id. Porttitor augue. Bibendum cum, luctus ultrices adipiscing congue amet ut elit rutrum aptent nulla, parturient. Conubia ut, enim dictumst fames. Sit nascetur integer, nullam lacus parturient laoreet quis hymenaeos.
Congue. Lacus nibh per duis molestie felis proin sociis. Vivamus justo arcu, nonummy id, quam nibh metus. A parturient cum, nulla leo amet per facilisis cursus nunc arcu nulla natoque auctor. Magna vestibulum quam mauris feugiat lacinia nostra eu hymenaeos. Inceptos natoque egestas hendrerit dui elementum cras, est. Lacus posuere habitant aptent eget diam ad ante vitae rutrum fermentum vestibulum feugiat sem penatibus hac. Malesuada hac risus justo, lacinia justo per netus blandit aptent. Vitae amet a netus nonummy nullam erat magnis et per. Accumsan lobortis, donec a nisi ve inceptos euismod. Curabitur. Nulla.

View File

@ -0,0 +1,9 @@
Ut fames urna pretium diam, mollis. Fringilla. Nullam dignissim. Quam. Libero tellus eu vehicula lectus, integer odio. Elit consectetuer ad morbi eni eget in arcu suspendisse. Diam aliquam id, commodo. Scelerisque cras, duis dapibus. Euismod diam, pellentesque. Urna. Diam parturient nibh fames iaculis ante, nisi felis ad massa. Aenean eu vivamus amet, ad duis viverra conubia ligula. Habitant cursus suscipit ullamcorper inceptos, tristique a est ridiculus aptent sagittis parturient varius. Eget donec volutpat cras dis cursus praesent mus lacinia nostra, ac. Blandit, dis ad. Lorem hac elit ut non eu magnis cum sapien venenatis pulvinar litora erat eget. Curae suspendisse bibendum. Gravida eu ad ornare cras aenean adipiscing praesent orci congue odio, id. At quam ullamcorper iaculis nam diam vehicula. Dui dictum ad sapien habitant fringilla a dolor ut. Nec et.
Morbi et porttitor quis, eros non eros. Amet aenean litora inceptos. Elementum morbi, nostra. Luctus at cum urna sollicitudin mi class scelerisque sem. Nisi. Gravida, nunc eros. Proin tincidunt. Netus fringilla. Ac ut quam fermentum. Placerat ante nonummy netus massa enim nam. Morbi posuere penatibus bibendum sapien sociis interdum. Aenean convallis netus hymenaeos elementum vestibulum diam semper sit urna habitant. Justo ve imperdiet a risus.
Enim aliquet ad, auctor. Ad. Quis odio, fringilla in. Massa viverra aptent. Ut fringilla vestibulum, mus metus cum. Proin nunc egestas, non, parturient ve, pede. Phasellus parturient. Pede consequat cum curae, nam erat nulla feugiat consequat urna luctus penatibus lacus. Sed ad ante eu. Eni ante sollicitudin parturient quis fusce rhoncus facilisi ornare, tortor torquent ut. Duis. Mauris facilisis etiam. Lorem ad arcu, fringilla turpis inceptos egestas pretium litora orci eu duis. Erat quam facilisis senectus, luctus cras etiam condimentum eros. Ultrices sollicitudin, sociis nulla vivamus. Primis vulputate sagittis felis cras. Orci parturient dis metus nonummy orci, a urna parturient erat platea mi curabitur scelerisque.
Sodales nulla ipsum porta potenti. Enim tempor, hendrerit neque amet molestie inceptos donec potenti primis, at malesuada proin elementum proin ultrices ve. Posuere ligula, sed nonummy, sociosqu. Integer ad, lobortis posuere, egestas tellus dis. Netus fames est quis netus penatibus mauris amet at eros facilisi magna laoreet quis. Vulputate. Luctus curabitur curae dolor luctus. Quis morbi iaculis eget sem velit conubia enim, ultrices massa mi. Ac, dignissim ipsum eget metus malesuada vulputate ipsum malesuada amet nibh aliquam. Sapien tellus molestie. Mollis magnis rhoncus in id duis montes mattis gravida orci est vitae. Est eu egestas nunc. Proin velit potenti luctus diam aenean.
Mi, aptent id, urna amet ipsum vel nibh. Cubilia odio ligula aliquam mi cubilia quis, habitant. Cras morbi natoque aenean dui varius. Per sed venenatis mattis primis, lacus vel convallis, sagittis, auctor. Quis arcu. Purus et libero sociosqu parturient tortor. Iaculis. Class mi at nibh. Vestibulum arcu platea at. Proin. Ut nunc interdum leo. Dolor porta, ornare sociis netus mi tristique a fringilla felis, urna. Sit ad pede mus libero orci neque aliquet nisl, ad pellentesque feugiat. Rutrum a, habitant enim suscipit placerat curae est quis, sed. Euismod pede ve curae rutrum platea gravida conubia nisi facilisi.

View File

@ -0,0 +1,9 @@
Enim quis fringilla tempus, lorem semper justo tristique. Placerat. Adipiscing aenean, bibendum elementum eu primis iaculis in. Et. Ut fringilla mi. Arcu est commodo justo, nisi a etiam mi fames. Morbi neque primis accumsan scelerisque dui. Fusce ad tellus morbi ac ante lacus torquent, at, scelerisque. Euismod nunc rhoncus. Vestibulum sollicitudin integer, elit montes sociis quisque, gravida curabitur pede potenti iaculis elementum leo. Neque ante enim. Eleifend leo, feugiat. Duis risus augue, magna dictum habitasse. Lacus sollicitudin velit pede etiam dapibus.
Ipsum. Lectus. Iaculis massa sed netus. Aenean malesuada etiam erat curae tempor mi torquent sed. Conubia ve, erat velit at id risus nam sodales velit, odio venenatis suscipit. Nulla ac hymenaeos diam, eget risus tempor convallis in, elementum a leo habitasse mollis. Nunc litora nonummy sodales eros inceptos dolor hymenaeos.
Odio quam, netus fringilla placerat ut suspendisse. Rutrum in lacus sollicitudin curabitur litora eget ornare. Quam volutpat natoque at fringilla. Ad felis hymenaeos sit blandit eros ve. At est neque, etiam. Posuere consequat eni lorem feugiat. Tincidunt porta. Cursus, fermentum. Pellentesque rutrum semper, amet per. Tempor vitae dictumst venenatis sit risus etiam, nisi, donec, interdum quis litora. Turpis. Interdum est. Tellus dictumst, id magnis vulputate id. Quis justo netus hendrerit ultricies. Elit id curabitur rhoncus, sociis velit facilisi dis.
Viverra turpis, purus commodo amet et risus in faucibus eget. Lorem varius. Class auctor ad inceptos posuere urna. Sollicitudin suscipit felis netus turpis per, adipiscing vestibulum ad sociis. Eu a erat in purus magnis. Donec malesuada magna dignissim cubilia est varius. Adipiscing dapibus non. Dictumst. Elementum. Ultricies duis, nam quis conubia ve mus. At erat viverra nulla purus mauris aptent tincidunt mi, elementum. Nullam. Malesuada magna purus mauris lacus gravida lacus aliquet lacinia elementum lobortis rutrum.
Ad. Metus, nam arcu integer ut, eros praesent. Morbi adipiscing. Ad dictum in, odio tempor ante, justo. Quam justo augue etiam sit hymenaeos, semper litora, inceptos ullamcorper eleifend, imperdiet. Aliquet pede quis augue ut. Vivamus tempus, hac ante at ornare tristique accumsan, ut. Elit hymenaeos convallis adipiscing amet mauris euismod elit mus placerat natoque. Eu magna lacus dapibus odio, eros, in mollis et, luctus lacinia cubilia aptent. Elit platea, hymenaeos id, aenean faucibus. Fames ac ve nisl. Potenti pellentesque dignissim congue purus vestibulum aliquam.

View File

@ -0,0 +1,13 @@
- hosts: lab
gather_facts: false
tasks:
- name: "Copy {{ item }} to all hosts"
copy:
src: "{{ item }}"
dest: /tmp/
loop:
- "{{ playbook_dir }}/File1.txt"
- "{{ playbook_dir }}/File2.txt"
- "{{ playbook_dir }}/File3.txt"
# vim: set ft=yaml sw=2 et:

View File

@ -0,0 +1,13 @@
- hosts: lab
gather_facts: false
tasks:
- name: "Ensure {{ item }} is present"
file:
path: "{{ item }}"
state: file
loop:
- /tmp/File1.txt
- /tmp/File2.txt
- /tmp/File3.txt
# vim: set ft=yaml sw=2 et:

View File

@ -13,5 +13,6 @@ Install Ansible and clone this repo. Customize the `hosts` file to your lab setu
1. [Jinja2 Template](50.Template/50.Template.md)
1. [Using Facts](60.Facts/60.Facts.md)
1. [Task Delegation](70.Delegate/70.Delegate.md)
1. [Loops](80.Loops/80.Loops.md)