{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# write_file\n", "\n", "Write contents to a file (locally)\n", "\n", "## Example" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m\u001b[36mgenerate_configurations*********************************************************\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[34m* dev1.group_1 ** changed : True ***********************************************\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[32mvvvv generate_configurations ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[33m---- write_file ** changed : True ---------------------------------------------- INFO\u001b[0m\n", "\u001b[0m--- out_files/dev1.group_1-config.txt\n", "\n", "+++ new\n", "\n", "@@ -0,0 +1,5 @@\n", "\n", "+\n", "+\n", "+---example configuration to write out---\n", "+\n", "+\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[32m^^^^ END generate_configurations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[34m* dev2.group_1 ** changed : True ***********************************************\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[32mvvvv generate_configurations ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[33m---- write_file ** changed : True ---------------------------------------------- INFO\u001b[0m\n", "\u001b[0m--- out_files/dev2.group_1-config.txt\n", "\n", "+++ new\n", "\n", "@@ -0,0 +1,5 @@\n", "\n", "+\n", "+\n", "+---example configuration to write out---\n", "+\n", "+\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[32m^^^^ END generate_configurations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[34m* dev3.group_2 ** changed : True ***********************************************\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[32mvvvv generate_configurations ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[33m---- write_file ** changed : True ---------------------------------------------- INFO\u001b[0m\n", "\u001b[0m--- out_files/dev3.group_2-config.txt\n", "\n", "+++ new\n", "\n", "@@ -0,0 +1,5 @@\n", "\n", "+\n", "+\n", "+---example configuration to write out---\n", "+\n", "+\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[32m^^^^ END generate_configurations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[34m* dev4.group_2 ** changed : True ***********************************************\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[32mvvvv generate_configurations ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[33m---- write_file ** changed : True ---------------------------------------------- INFO\u001b[0m\n", "\u001b[0m--- out_files/dev4.group_2-config.txt\n", "\n", "+++ new\n", "\n", "@@ -0,0 +1,5 @@\n", "\n", "+\n", "+\n", "+---example configuration to write out---\n", "+\n", "+\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[32m^^^^ END generate_configurations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[34m* dev5.no_group ** changed : True **********************************************\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[32mvvvv generate_configurations ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[33m---- write_file ** changed : True ---------------------------------------------- INFO\u001b[0m\n", "\u001b[0m--- out_files/dev5.no_group-config.txt\n", "\n", "+++ new\n", "\n", "@@ -0,0 +1,5 @@\n", "\n", "+\n", "+\n", "+---example configuration to write out---\n", "+\n", "+\u001b[0m\n", "\u001b[0m\u001b[1m\u001b[32m^^^^ END generate_configurations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n", "\u001b[0m" ] } ], "source": [ "from nornir import InitNornir\n", "from nornir_utils.plugins.tasks.files import write_file\n", "from nornir_utils.plugins.functions import print_result\n", "\n", "nr = InitNornir(\n", " inventory={\n", " \"plugin\": \"SimpleInventory\",\n", " \"options\": {\"host_file\": \"data/hosts.yaml\", \"group_file\": \"data/groups.yaml\"},\n", " }\n", ")\n", "\n", "def generate_configurations(task):\n", " task.run(\n", " task=write_file,\n", " filename=f\"out_files/{task.host}-config.txt\",\n", " content=\"\\n\\n---example configuration to write out---\\n\\n\\n\"\n", " )\n", "\n", "r = nr.run(\n", " task=generate_configurations\n", ")\n", "\n", "print_result(r)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.2" } }, "nbformat": 4, "nbformat_minor": 2 }