{"id":210,"date":"2019-12-10T00:17:47","date_gmt":"2019-12-09T22:17:47","guid":{"rendered":"https:\/\/jochemenbianca.nl\/?p=210"},"modified":"2019-12-10T12:36:01","modified_gmt":"2019-12-10T10:36:01","slug":"dell-switch-configuratie-via-ansible","status":"publish","type":"post","link":"https:\/\/jochemenbianca.nl\/?p=210","title":{"rendered":"Dell switch configuratie via ansible"},"content":{"rendered":"<p>Aangezien ansible een configuratie tool is wilde ik proberen of het daarom mogelijk was om via ansible daar iets mee te doen.<br \/>\nIk ga ervan uit dat er een user ansible is op de master en dat ansible geinstalleerd is.<br \/>\nVerder moet ook het admin wachtwoord van de Dell switches bekend zijn. En moet je een Dell Open Managed switch hebben.<br \/>\nDaarna kunnen we verder.<br \/>\nTen eerste moet je zorgen dat er op de Dell switches een gebruiker ansible aangemaakt wordt die via een key kan inloggen. Dit kan je doen door 1 malig op de Dell switches met de administrator gegevens in te loggen<\/p>\n<pre>ssh admin@&lt;ip_switch&gt;\r\n<\/pre>\n<p>of<\/p>\n<pre>ssh root@&lt;ip_switch&gt;\r\n<\/pre>\n<p>en het daarbij behorende wachtwoord.<br \/>\nAls je ingelogd bent dan voer je de volgende regels uit:<\/p>\n<pre>enable\r\nconfig\r\nusername \"ansible\" password &lt;encrypted password&gt; privilege 1 encrypted\r\ncrypto key pubkey-chain ssh user-key \"ansible\" rsa\r\nkey-string row \"&lt;ansible key&gt;\"\r\nexit\r\nexit\r\nip ssh pubkey-auth\r\nexit\r\nexit\r\n<\/pre>\n<p>De ansible key is terug te vinden op de &#8220;master&#8221; in id_rsa.pub van de ansible user. Deze vul je dus in op de regel die begint met key-string.<br \/>\nOm te testen of het werkt voer je op de master het volgende commando uit:<\/p>\n<pre>ssh ansible@&lt;ip_switch&gt;\r\n<\/pre>\n<p>Als alles goed is ingesteld, zou er nu niet om een wachtwoord moeten worden gevraagd. Als dat zo is, dan kunnen we verder met het maken van een playbook.<br \/>\nHet playbook wat ik gemaakt heb, is redelijk simpel. We gaan er voor zorgen dat de running config gekopieerd wordt naar de startup config.<br \/>\nHet playbook ziet er als volgt uit:<\/p>\n<pre>---\r\n- hosts: dellswitches\r\n  become: yes\r\n  become_user: ansible\r\n  connection: local\r\n  gather_facts: yes\r\n  tasks:\r\n    - name: Enable\r\n      dellos6_command:\r\n        commands:\r\n          - enable\r\n    - name: Copy running config to startup config\r\n      dellos6_command:\r\n        commands:\r\n          - command: copy running-config startup-config\r\n            prompt: '\\(y\/n\\)\\s?$'\r\n            answer: \"y\"\r\n<\/pre>\n<p>Misschien moeten er nog enkele dingen worden aangepast. Zo is hosts natuurlijk afhankelijk van de inventory file.<br \/>\nDe module <em>dellos6_command <\/em>is natuurlijk afhankelijk van de firmware van de Dell switch. In mijn geval was dat versie 6.<br \/>\nDit is zoals ik al schreef een relatief simple playbook, maar met de dell modules is nog veel meer mogelijk. Meer info over de modules is te vinden op:<br \/>\n<a href=\"https:\/\/readthedocs.org\/projects\/ansible-dellos-docs\/downloads\/pdf\/latest\/\" target=\"_new\" rel=\"noopener noreferrer\">https:\/\/readthedocs.org\/projects\/ansible-dellos-docs\/downloads\/pdf\/latest\/<\/a><\/p>\n<p>&nbsp;<br \/>\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/tCeHD5t3W0U\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aangezien ansible een configuratie tool is wilde ik proberen of het daarom mogelijk was om via ansible daar iets mee te doen. Ik ga ervan uit dat er een user ansible is op de master en dat ansible geinstalleerd is. Verder moet ook het admin wachtwoord van de Dell switches [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,3],"tags":[],"class_list":["post-210","post","type-post","status-publish","format-standard","hentry","category-ansible","category-open-source"],"_links":{"self":[{"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/posts\/210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=210"}],"version-history":[{"count":5,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/posts\/210\/revisions"}],"predecessor-version":[{"id":215,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/posts\/210\/revisions\/215"}],"wp:attachment":[{"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}