рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рдмрд╛рдд рдХрд░реЗрдВ рддреЛ рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рдореЙрдбреНрдпреВрд▓ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, Ansible рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХрдВрд╕реЛрд▓ рд╕реЗ рд╕реАрдзреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕реА рд╕рдордп, рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╡рд┐рд╕реНрдорд░рдг рдореЗрдВ рдбреВрдмрдиреЗ рдХреЗ рд▓рд┐рдП рди рдХреЗрд╡рд▓ рдлрд┐рд╕рд▓ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрдЪрд╛рдпрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЪрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╛рдж рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдпрд╛ рдореЗрдЬрдмрд╛рди рдЪрд░ рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ред

рдЗрд╕ рдкреЛрд╕реНрдЯ рдХрд╛ рд▓рдХреНрд╖реНрдп рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдп рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдЕрдиреНрд╕рд┐рдмрд▓ рди рдХреЗрд╡рд▓ рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рджрд┐рдирдЪрд░реНрдпрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдФрд░ рд╕рдордп рдмрдЪрд╛рдиреЗ рдореЗрдВ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдЪрд▓реЛ рдиреЗрдЯрд╡рд░реНрдХ рдХрдорд╛рдВрдб рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдореВрд▓ рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рд╣рдо рдпрд╣ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣реЛрд╕реНрдЯрд╡рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕реНрдХреЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рд╡рд╛рдЯреНрд╕_рдПрдлрд╝ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рддреАрди рдЕрдиреНрдп рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╢рд░реНрдд рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП: рдЕрдВрддрд░рд╛рд▓, рд░рд┐рдЯреНрд░реАрдЯ рдФрд░ рдореИрдЪред
рд╡рд┐рднрд┐рдиреНрди рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрдорд╛рдВрдб рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рднреА Red Hat Ansible рдЗрдВрдЬрди рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдРрдб-рдСрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрддрд░ рдкрд░
рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ:
рдХрдорд╛рдВрдб рдореЙрдбреНрдпреВрд▓ рдореВрд▓ рдмрд╛рддреЗрдВ
рдкреНрд▓реЗрдмреБрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ eos_command рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЗрд╡рд▓ рд╢реЛ рд╕рдВрд╕реНрдХрд░рдг рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реИ:
--- - name: COMMAND MODULE PLAYBOOK hosts: eos connection: network_cli tasks: - name: EXECUTE ARISTA EOS COMMAND eos_command: commands: show version register: output - name: PRINT OUT THE OUTPUT VARIABLE debug: var: output
рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдХрд╛рд░реНрдп рд╣реИрдВ рдФрд░ рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ eos_command рдПрдХрд▓ рдХрдорд╛рдВрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ред рдЪреВрдБрдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдХрдорд╛рдВрдб - рд╢реЛ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ - рдпрд╣ рдЙрд╕реА рд▓рд╛рдЗрди рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХрдорд╛рдВрдб рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрд╡рдпрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рдЯреАрдореЗрдВ рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рдж рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдкрд░ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рд╢реЛ рд╡рд░реНрдЬрди рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рд░рдЬрд┐рд╕реНрдЯрд░ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд░рдЬрд┐рд╕реНрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░ (рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрд╕ рдЪрд░ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдп
рдбрд┐рдмрдЧ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╡ рдирд┐рд░реНрдорд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдЪрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ рд╡рд╣реА рдбреЗрдЯрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк EOS рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ рджреЗрдЦреЗрдВрдЧреЗ рдпрджрд┐ рдЖрдкрдиреЗ "рд╢реЛ рд╕рдВрд╕реНрдХрд░рдг" рджрд░реНрдЬ рдХрд┐рдпрд╛ рд╣реИред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдкреНрд▓реЗрдмреБрдХ рдЙрдиреНрд╣реЗрдВ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ рджрд┐рдЦрд╛рдПрдЧреА рдЬрд┐рд╕ рдкрд░ рдЖрдк рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдбрд┐рдмрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЛ Ansible рдЪрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ playbook рдХреЗ рдЙрддреНрдкрд╛рджрди рд╣реИ:
PLAY [eos] ************************************************************************* TASK [execute Arista eos command] ************************************************** ok: [eos] TASK [print out the output variable] *********************************************** ok: [eos] => { "output": { "changed": false, "failed": false, "stdout": [ "Arista vEOS\nHardware version: \nSerial number: \nSystem MAC address: 0800.27ec.005e\n\nSoftware image version: 4.20.1F\nArchitecture: i386\nInternal build version: 4.20.1F-6820520.4201F\nInternal build ID: 790a11e8-5aaf-4be7-a11a-e61795d05b91\n\nUptime: 1 day, 3 hours and 23 minutes\nTotal memory: 2017324 kB\nFree memory: 1111848 kB" ], "stdout_lines": [ [ "Arista vEOS", "Hardware version: ", "Serial number: ", "System MAC address: 0800.27ec.005e", "", "Software image version: 4.20.1F", "Architecture: i386", "Internal build version: 4.20.1F-6820520.4201F", "Internal build ID: 790a11e8-5aaf-4be7-a11a-e61795d05b91", "", "Uptime: 1 day, 3 hours and 23 minutes", "Total memory: 2017324 kB", "Free memory: 1111848 kB" ] ] } } PLAY RECAP ************************************************************************* eos : ok=2 changed=0 unreachable=0 failed=0
рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЪреВрдВрдХрд┐ рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдп рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реНрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╕ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ eos рд╣реЛрд╕реНрдЯ рдиреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдареАрдХ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдХрд┐рдпрд╛, рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╕рдлрд▓рддрд╛ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ред рдбреАрдмрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдп, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдПрдХ рд╣реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджреЛ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
рд╕реНрдЯрдбрдЖрдЙрдЯ рдЕрдиреБрднрд╛рдЧ рдЙрд╕реА рдЪреАрдЬрд╝ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдПрдХ рд▓рдВрдмреА рд▓рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВред рдФрд░ stdout_lines рдЕрдиреБрднрд╛рдЧ рдЗрд╕ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рддреЛрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛред рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рд╣реИред
рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдФрд░ Ansible рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
Arista EOS рдореЗрдВ рдЯреАрдо рдЖрдЙрдЯрдкреБрдЯ | stdout_lines рдореЗрдВ Ansible |
eos> рдЫрдВрдж рджрд┐рдЦрд╛рдУ рдЕрд░рд┐рд╕реНрдЯрд╛ vEOS рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг: рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░: рд╕рд┐рд╕реНрдЯрдо рдореИрдХ рдкрддрд╛: 0800.27ec.005e
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЫрд╡рд┐ рд╕рдВрд╕реНрдХрд░рдг: 4.20.1F рд╡рд╛рд╕реНрддреБрдХрд▓рд╛: i386 рдЖрдВрддрд░рд┐рдХ рдмрд┐рд▓реНрдб рд╕рдВрд╕реНрдХрд░рдг: 4.20.1F-6820520.4201F рдЖрдВрддрд░рд┐рдХ рдмрд┐рд▓реНрдб рдЖрдИрдбреА: 790a11e8-5aaf-4be7-a11a-e61795d05b91
рдЕрдкрдЯрд╛рдЗрдо: 1 рджрд┐рди, 3 рдШрдВрдЯреЗ рдФрд░ 56 рдорд┐рдирдЯ рдХреБрд▓ рдореЗрдореЛрд░реА: 2017324 рдХреЗрдмреА рдореБрдлреНрдд рдореЗрдореЛрд░реА: 1116624 рдХреЗрдмреА | "Stdout_lines": [ [ "рдЕрд░рд┐рд╕реНрдЯрд╛ рд╡реАрдУрдПрд╕рдУ", "рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг:", "рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░:", "рд╕рд┐рд╕реНрдЯрдо рдореИрдХ рдкрддрд╛: 0800.27ec.005e", "" "рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЫрд╡рд┐ рд╕рдВрд╕реНрдХрд░рдг: 4.20.1F", "рд╡рд╛рд╕реНрддреБрдХрд▓рд╛: i386", "рдЖрдВрддрд░рд┐рдХ рдмрд┐рд▓реНрдб рд╕рдВрд╕реНрдХрд░рдг: 4.20.1F-6820520.4201F ", "рдЖрдВрддрд░рд┐рдХ рдмрд┐рд▓реНрдб рдЖрдИрдбреА: 790a11e8-5aaf-4be7-a11a-e61795d05b91 ", "" "рдЕрдкрдЯрд╛рдЗрдо: 1 рджрд┐рди, 3 рдШрдВрдЯреЗ рдФрд░ 23 рдорд┐рдирдЯ", "рдХреБрд▓ рдореЗрдореЛрд░реА: 2017324 kB", "рдореБрдлреНрдд рдореЗрдореЛрд░реА: 1111848 kB" ] |
рдпрджрд┐ рдЖрдк JSON рдФрд░ YAML рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╡рд┐рд╖рдорддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ: stdout_lines рджреЛ рд╢реБрд░реБрдЖрддреА рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ:
"stdout_lines": [ [
рджреЛ рд╢реБрд░реБрдЖрддреА рдХреЛрд╖реНрдардХ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ stdout_lines рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд╛рдЗрди рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдбрд┐рдмрдЧ рдХрд╛рд░реНрдп рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдЪрд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдорд╛рдВрдб рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реА рд╕реВрдЪреА рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдХреЗрд╡рд▓ рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╕реВрдЪреА рдХреЛ рд╢реВрдиреНрдп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкрд╣рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрд┐рдирддреА рдЦрд░реЛрдВрдЪ рд╕реЗ рдЬрд╛рддреА рд╣реИ)ред рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓реА рдЬрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдореИрдХ рдПрдбреНрд░реЗрд╕ред рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рдпрд╣ рдкрдВрдХреНрддрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЪреМрдерд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рд╣рдо рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдЧрд┐рдирддреА рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдЕрдВрддрддрдГ рд╕реВрдЪреА 0 рд╕реЗ рд▓рд╛рдЗрди 3 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ: output.stdout_lines [0] [3]ред
- name: print out a single line of the output variable debug: var: output.stdout_lines[0][3] debug- : TASK [print out a single line of the output variable] ****************************** ok: [eos] => { "output.stdout_lines[0][3]": "System MAC address: 0800.27ec.005e" }
рд╕реВрдЪреА рдХреНрд░рдорд╛рдВрдХ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдХреЗ рднреАрддрд░ рдЖрдк рдХрдИ рдЯреАрдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ (рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрди рдЯреАрдореЗрдВ рд╣реИрдВ):
--- - hosts: eos connection: network_cli tasks: - name: execute Arista eos command eos_command: commands: - show version - show ip int br - show int status register: output - name: print out command debug: var: output.stdout_lines
рдпрд╣рд╛рдБ рдЖрдЙрдЯрдкреБрдЯ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
"output.stdout_lines": [ [ "Arista vEOS", "Hardware version: ", "Serial number: ", "System MAC address: 0800.27ec.005e", "", "Software image version: 4.20.1F", "Architecture: i386", "Internal build version: 4.20.1F-6820520.4201F", "Internal build ID: 790a11e8-5aaf-4be7-a11a-e61795d05b91", "", "Uptime: 1 day, 4 hours and 20 minutes", "Total memory: 2017324 kB", "Free memory: 1111104 kB" ], [ "Interface IP Address Status Protocol MTU", "Ethernet1 172.16.1.1/24 up up 1500", "Management1 192.168.2.10/24 up up 1500" ], [ "Port Name Status Vlan Duplex Speed Type Flags", "Et1 connected routed full unconf EbraTestPhyPort ", "Et2 connected 1 full unconf EbraTestPhyPort ", "Et3 connected 1 full unconf EbraTestPhyPort ", "Ma1 connected routed a-full a-1G 10/100/1000" ] ]
рдпрд╣рд╛рдВ, рд╕реВрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╢реЛ рд╕рдВрд╕реНрдХрд░рдг рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, рд╕реВрдЪреА рдирдВрдмрд░ рдПрдХ рд╢реЛ рдЖрдИрдкреА рдЗрдВрдЯ рдмреНрд░рд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, рд╕реВрдЪреА рдирдВрдмрд░ рджреЛ рд╢реЛ рдЗрдВрдЯ рд╕реНрдЯреЗрдЯрд╕ рдЖрдЙрдЯрдкреБрдЯ рд╣реИред рдпрд╣реА рд╣реИ, рд╕реВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЙрд╕ рдХреНрд░рдо рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдЕрд░рд┐рд╕реНрддрд╛ рдИрдУрдПрд╕ рдЯреАрдореЗрдВ | рдорд┐рд▓рд╛рди рдЖрдЙрдЯрдкреБрдЯ рд╕реВрдЪреА |
рд╕рдВрд╕реНрдХрд░рдг рджрд┐рдЦрд╛рдПрдВ | output.stdout_lines [0] |
рд╢реЛ рдЖрдИрдкреА рдЗрдВрдЯ рдмреНрд░ | output.stdout_lines [1] |
рдЗрдВрдЯ рд╕реНрдЯреЗрдЯрд╕ рджрд┐рдЦрд╛рдУ | output.stdout_lines [2] |
рдХрдорд╛рдВрдб рдореЙрдбреНрдпреВрд▓ рд╕реНрдХреЗрд▓рд┐рдВрдЧ: рдореЗрдЬрдмрд╛рди рдЪрд░
рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкреНрд▓реЗрдмреБрдХ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?
рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЙрдЯрдкреБрдЯ рдЪрд░ рдХреЛ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП
рд╣реЛрд╕реНрдЯ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛
рд╣реИ ред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрди рд╕реНрд╡рд┐рдЪ рд╣реИрдВ, рдФрд░ рд╣рдо рдЙрди рдкрд░ рдЕрдкрдиреА рдкреНрд▓реЗрдмреБрдХ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдЪрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ switch03 рдкрд░ рдИрдерд░рдиреЗрдЯ 1 рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╢реЛ рдЖрдИрдкреА рдЗрдВрдЯ рдмреНрд░ рдХрдорд╛рдВрдб рд╕реЗ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╢реЛ рдЖрдИрдкреА рдЗрдВрдЯ рдмреНрд░рд╛ рджреВрд╕рд░реА рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдХрд╛рд░реНрдп рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рддреА рд╣реИ, рдФрд░ рдИрдерд░рдиреЗрдЯ 1 рдкрд░ рдбреЗрдЯрд╛ рдЗрд╕рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреА рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИ, рд╣рдореЗрдВ stdout_lines [1] [1] рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╣реЛрд╕реНрдЯ рдХреЗ рдЪрд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо hostvars рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рд╣реЛрд╕реНрдЯ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ:
- name: debug hostvar debug: var: hostvars["switch03"].output.stdout_lines[1][1]
рдирддреАрдЬрддрди, рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╡рд╣реА рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
TASK [debug hostvar] *************************************************************** ok: [switch03] => { "hostvars[\"switch03\"].output.stdout_lines[1][1]": "Ethernet1 172.16.1.3/24 up up 1500" }
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрд╛рд░реНрдп рд╡рд░реНрддрдорд╛рди рд╣реЛрд╕реНрдЯ рдХреЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди hostvars рдЖрдкрдХреЛ рд╕реАрдзреЗ рджреВрд╕рд░реЗ рд╣реЛрд╕реНрдЯ рдХреЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдХрдорд╛рдВрдб рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ: Wait_for рдкреИрд░рд╛рдореАрдЯрд░
рдкреНрд░рддреАрдХреНрд╖рд╛_ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдПрдХ рд╢рд░реНрдд рдЬрд╛рдВрдЪ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдп рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрднреА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕реНрдЯреЗрдЯрд╕ рдЪреЗрдХ рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХреБрдЫ рдкрд╛рда рд╣реЛред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, wa_for рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЪрд▓рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╢рд░реНрдд рдкреВрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдпрд╛ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕реАрдорд╛ рдкрд╛рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 10 рд╣реИрдВ)ред рдпрджрд┐ рдЖрдк рдХрдорд╛рдВрдб рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкреНрд▓реЗрдмреБрдХ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ рдХрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕реНрдерд┐рддрд┐ рдХрднреА рднреА рди рд╣реЛ), рд╕рдм рдХреБрдЫ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╣реЛрддрд╛ рд╣реИред
--- - hosts: eos connection: network_cli tasks: - name: execute Arista eos command eos_command: commands: - show int status wait_for: - result[0] contains DURHAM
рдпрд╣ рдкреНрд▓реЗрдмреБрдХ рд╢реЛ рдЗрдВрдЯ рд╕реНрдЯреЗрдЯрд╕ рдХрдорд╛рдВрдб 10 рдмрд╛рд░ рдЪрд▓рд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ DURHAM рд▓рд╛рдЗрди рдХрднреА рдирд╣реАрдВ рд╣реЛрдЧреАред
рдЖрдк рд▓реЙрдЧ рд▓реЙрдЧрд┐рдВрдЧ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Mar 24 20:33:52 eos Aaa: %ACCOUNTING-6-CMD: admin vty6 192.168.2.1 stop task_id=17 start_time=1521923632.5 timezone=UTC service=shell priv-lvl=15 cmd=show interfaces status Mar 24 20:33:53 eos Aaa: %ACCOUNTING-6-CMD: admin vty6 192.168.2.1 stop task_id=18 start_time=1521923633.71 timezone=UTC service=shell priv-lvl=15 cmd=show interfaces status Mar 24 20:33:54 eos Aaa: %ACCOUNTING-6-CMD: admin vty6 192.168.2.1 stop task_id=19 start_time=1521923634.81 timezone=UTC service=shell priv-lvl=15 cmd=show interfaces status Mar 24 20:33:55 eos Aaa: %ACCOUNTING-6-CMD: admin vty6 192.168.2.1 stop task_id=20 start_time=1521923635.92 timezone=UTC service=shell priv-lvl=15 cmd=show interfaces status Mar 24 20:33:56 eos Aaa: %ACCOUNTING-6-CMD: admin vty6 192.168.2.1 stop task_id=21 start_time=1521923636.99 timezone=UTC service=shell priv-lvl=15 cmd=show interfaces status Mar 24 20:33:58 eos Aaa: %ACCOUNTING-6-CMD: admin vty6 192.168.2.1 stop task_id=22 start_time=1521923638.07 timezone=UTC service=shell priv-lvl=15 cmd=show interfaces status Mar 24 20:33:59 eos Aaa: %ACCOUNTING-6-CMD: admin vty6 192.168.2.1 stop task_id=23 start_time=1521923639.22 timezone=UTC service=shell priv-lvl=15 cmd=show interfaces status Mar 24 20:34:00 eos Aaa: %ACCOUNTING-6-CMD: admin vty6 192.168.2.1 stop task_id=24 start_time=1521923640.32 timezone=UTC service=shell priv-lvl=15 cmd=show interfaces status Mar 24 20:34:01 eos Aaa: %ACCOUNTING-6-CMD: admin vty6 192.168.2.1 stop task_id=25 start_time=1521923641.4 timezone=UTC service=shell priv-lvl=15 cmd=show interfaces status Mar 24 20:34:02 eos Aaa: %ACCOUNTING-6-CMD: admin vty6 192.168.2.1 stop task_id=26 start_time=1521923642.47 timezone=UTC service=shell priv-lvl=15 cmd=show interfaces status
рдЕрдм рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд▓реЗрдмреБрдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрдИрдкреА рдУрд╕реНрдкрдл рдПрд░рд┐рдпрд╛ рдХрдорд╛рдВрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдУрдПрд╕рдкреАрдПрдл рдкрдбрд╝реЛрд╕ (рдЖрд╕рдиреНрди) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЗрд╕ рдЖрджреЗрд╢ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдкреВрд░реНрдг рд╢рдмреНрдж рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП wait_for рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: рдпрджрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рд╣реИ, рддреЛ рдкрдбрд╝реЛрд╕ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ FULL 10 рдкреНрд░рдпрд╛рд╕реЛрдВ рдореЗрдВ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
--- - hosts: eos connection: network_cli tasks: - name: turn on OSPF for interface Ethernet1 eos_config: lines: - ip ospf area 0.0.0.0 parents: interface Ethernet1 - name: execute Arista eos command eos_command: commands: - show ip ospf neigh wait_for: - result[0] contains FULL
Ansible-playbook рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкреНрд▓реЗрдмреБрдХ рдХреЛ рдЪрд▓рд╛рдПрдВ:
тЮЬ ansible-playbook ospf.yml PLAY [eos] ********************************************************************************************* TASK [turn on OSPF for interface Ethernet1] ******************************************************* changed: [eos] TASK [execute Arista eos command] **************************************************************** ok: [eos] PLAY RECAP ****************************************************************************************** eos : ok=2 changed=1 unreachable=0 failed=0
рд╣рдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд▓реЗрдмреБрдХ рд╕рдлрд▓ рд░рд╣рд╛:
eos#show ip ospf neigh Neighbor ID VRF Pri State Dead Time Address Interface 2.2.2.2 default 1 FULL/DR 00:00:33 172.16.1.2 Ethernet1
рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЖрдк рдирд┐рдореНрди рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- eq: - рдмрд░рд╛рдмрд░ рд╣реИ
- neq: - рдирд╣реАрдВ рдХреЗ рдмрд░рд╛рдмрд░
- рдЬреА.рдЯреА.: - рдЕрдзрд┐рдХ
- ge: - рд╕реЗ рдмрдбрд╝рд╛ рдпрд╛ рдмрд░рд╛рдмрд░
- рд▓реЗрдлреНрдЯрд┐рдиреЗрдВрдЯ: - рдХрдо
- рд▓реЗ: - рд╕реЗ рдХрдо рдпрд╛ рдмрд░рд╛рдмрд░
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Wait_for рдХреЗ рд╕рд╛рде, рдЖрдк рддреАрди рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, (рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд):
рдкреИрд░рд╛рдореАрдЯрд░ | рд╡рд┐рд╡рд░рдг |
рдЕрдВрддрд░рд╛рд▓ | рдПрдХ рдЯреАрдо рдХреЗ рджреЛрд╣рд░рд╛рд╡ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдордпред |
рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕ | рдореИрдХреНрд╕ред рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЛрд╣рд░рд╛рд╡ рдХреА рд╕рдВрдЦреНрдпрд╛, рдпрд╛ рд╕реНрдерд┐рддрд┐ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИред |
рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ | рд╕рднреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЧ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХред |
рдЖрдЗрдП рд╣рдо рдореИрдЪ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдВ:
- name: execute Arista eos command eos_command: commands: - show ip ospf neigh match: any wait_for: - result[0] contains FULL - result[0] contains 172.16.1.2
рдЬрдм рдорд┐рд▓рд╛рди: рдХреЛрдИ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрдп рд╕рдлрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ FULL рдпрд╛ 172.16.1.2 рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдорд┐рд▓рд╛рди: рд╕рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдкреВрд░реНрдг рдФрд░ 172.16.1.2 рджреЛрдиреЛрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдореИрдЪ: рд╕рднреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдХрдИ рд╢рд░реНрддреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рднреА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдирд╣реАрдВред
рдХрдм рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ: рдХреЛрдИ рднреА рдХрд╛рдо рдЖ рд╕рдХрддрд╛ рд╣реИ? рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░ рдХрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рджреЛ-рддрд░рдлрд╝рд╛ рдХрдиреЗрдХреНрд╢рди рд╣реИред рдФрд░ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдкрд╛рдВрдЪ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдВрдЯрд░рдиреЗрдЯ рдкреНрд░рджрд╛рддрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЕрдкрдирд╛ рдмреАрдЬреАрдкреА рдХрдиреЗрдХреНрд╢рди рд╣реИред рдПрдХ рдкреНрд▓реЗрдмреБрдХ рдЗрди рд╕рднреА рдкрд╛рдВрдЪ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдкрд╛рдВрдЪ рдирд╣реАрдВ, рддреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИред рдмрд╕ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХреЛрдИ рднреА рддрд╛рд░реНрдХрд┐рдХ OR рд╣реИ, рдФрд░ рд╕рднреА рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╣реИред
рдкреИрд░рд╛рдореАрдЯрд░ | рд╡рд┐рд╡рд░рдг |
рдореИрдЪ: рдХреЛрдИ рднреА | рддрд╛рд░реНрдХрд┐рдХ "рдпрд╛" рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╢рд░реНрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ |
рдореИрдЪ: рд╕рднреА | рддрд╛рд░реНрдХрд┐рдХ "рдФрд░" рд╕рднреА рд╢рд░реНрддреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ |
рдирдХрд╛рд░рд╛рддреНрдордХ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ: рдЙрд▓рдЯреЗ рддрд░реНрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
рдХрднреА-рдХрднреА рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╣рдореЗрд╢рд╛ neq рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реБрднрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирдХрд╛рд░рд╛рддреНрдордХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрдерди (рдкреНрд░рдХрд╛рд░ рдХрд╛, "рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдРрд╕рд╛ рдФрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП") рдХреЛ рдЙрд▓реНрдЯрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдЬрд┐рд╕реНрдЯрд░ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЕрдЧрд▓реЗ рдХрд╛рд░реНрдп рдореЗрдВ
рдЬрдм рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдкрдХреЛ рд╢рд░реНрддреЗрдВ рдкреВрд░реА рди рд╣реЛрдиреЗ рдкрд░ рдкреНрд▓реЗрдмреБрдХ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП
рдЕрд╕рдлрд▓ рдпрд╛
рдореБрдЦрд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░ рдиреАрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╕рдЯреАрдХ рдорд╛рди рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реА рдпрд╛ JSON рд╕реЗ), рдФрд░ рди рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рддрд╛рд░ рдХреА рд╕реВрдЪреАред рдЕрдиреНрдпрдерд╛, рдЪрд░рд┐рддреНрд░-рджрд░-рддрд╛рд░ рддреБрд▓рдирд╛ рддрд╛рд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ
рдиреЗрдЯрд╡рд░реНрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░
рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВред рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ JSON рдкреНрд░рд╛рд░реВрдк рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рднреВ, рд▓реЗ рдФрд░ рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрдкрдпреЛрдЧреА рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред