2.2. 네트워크 Ansible Playbook 실행


매일 특정 명령을 실행하려면 ansible 대신 ansible-playbook 을 사용하여 플레이북에 저장하고 실행할 수 있습니다. 플레이북은 명령줄에 플래그와 함께 제공한 많은 매개변수를 저장할 수 있으므로 명령줄에 입력하는 것은 적습니다. 플레이북과 인벤토리 파일이라는 두 개의 파일이 필요합니다.

플레이북은 다음과 같습니다.

Copy to Clipboard Toggle word wrap
---

- name: Network Getting Started First Playbook
  connection: ansible.netcommon.network_cli
  gather_facts: false					        	
1

  hosts: all
  tasks:

    - name: Get config for VyOS devices
      vyos.vyos.vyos_facts:
        gather_subset: all

    - name: Display the config
      debug:
        msg: "The hostname is {{ ansible_net_hostname }} and the OS is {{ ansible_net_version }}"
레이블설명

gather_facts

Ansible의 기본 팩트 수집(ansible.builtin.setup)은 이 네트워킹 컬렉션의 플랫폼별 모듈(vyos.vyos.vyos_facts)에서 제공하는 팩트를 사용하기 때문에 여기에서 비활성화됩니다.

플레이북은 위의 명령줄에서 7개의 값 중 세 가지를 설정합니다.

  • 그룹(호스트: all)
  • 연결 방법(Connection: ansible.netcommon.network_cli) 및
  • 모듈(각 작업에 있음).

플레이북에 해당 값을 설정하면 명령줄에서 해당 값을 생략할 수 있습니다. 플레이북은 구성 출력을 표시하는 두 번째 작업도 추가합니다.

vyos.vyos_facts 또는 ansible.builtin.setup 과 같은 컬렉션 관련 팩트 모듈을 통해 시스템에서 팩트를 수집할 때 수집된 데이터는 콘솔에 기록되는 대신 향후 작업에서 사용하기 위해 메모리에 보관됩니다.

모듈이 플레이북에서 실행되면 콘솔에 쓰는 대신 향후 작업에서 사용할 수 있도록 출력이 메모리에 유지됩니다. 대부분의 다른 모듈에서는 모듈 또는 작업의 출력을 저장하고 재사용할 변수를 명시적으로 등록해야 합니다.

팩트에 대한 자세한 내용은 Ansiible Playbook 참조 가이드의 [Ansible facts]를 참조하십시오.

다음 디버그 작업을 사용하면 쉘에 결과를 볼 수 있습니다.

프로세스

  1. 다음 명령을 사용하여 플레이북을 실행합니다.

    Copy to Clipboard Toggle word wrap
    ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook.yml

    플레이북에는 두 개의 작업이 있는 하나의 플레이가 포함되어 있으며 다음과 같은 출력을 생성합니다.

    Copy to Clipboard Toggle word wrap
    $ ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook.yml
    
    PLAY [Network Getting Started First Playbook]
    ***************************************************************************************************************************
    
    TASK [Get config for VyOS devices]
    ***************************************************************************************************************************
    ok: [vyos.example.net]
    
    TASK [Display the config]
    ***************************************************************************************************************************
    ok: [vyos.example.net] => {
        "msg": "The hostname is vyos and the OS is VyOS 1.1.8"
    }
  2. 이제 장치 구성을 검색할 수 있으므로 Ansible로 업데이트를 시도할 수 있습니다.
  3. 첫 번째 플레이북의 확장 버전인 first_playbook_ext.yml여기에서 다운로드합니다.

    플레이북은 다음과 같습니다.

    Copy to Clipboard Toggle word wrap
    ---
    
    - name: Network Getting Started First Playbook Extended
      connection: ansible.netcommon.network_cli
      gather_facts: false
      hosts: all
      tasks:
    
        - name: Get config for VyOS devices
          vyos.vyos.vyos_facts:
            gather_subset: all
    
        - name: Display the config
          debug:
            msg: "The hostname is {{ ansible_net_hostname }} and the OS is {{ ansible_net_version }}"
    
        - name: Update the hostname
          vyos.vyos.vyos_config:
            backup: yes
            lines:
              - set system host-name vyos-changed
    
        - name: Get changed config for VyOS devices
          vyos.vyos.vyos_facts:
            gather_subset: all
    
        - name: Display the changed config
          debug:
            msg: "The new hostname is {{ ansible_net_hostname }} and the OS is {{ ansible_net_version }}"
  4. 확장 첫 번째 플레이북에는 단일 플레이에 5개의 작업이 있습니다.
  5. 다음 명령을 사용하여 플레이북을 실행합니다.

    Copy to Clipboard Toggle word wrap
    $ ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook_ext.yml
  6. 출력에는 구성에 대한 Ansible 변경 사항이 표시됩니다.

    Copy to Clipboard Toggle word wrap
    $ ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook_ext.yml
    
    PLAY [Network Getting Started First Playbook Extended]
    ************************************************************************************************************************************
    
    TASK [Get config for VyOS devices]
    **********************************************************************************************************************************
    ok: [vyos.example.net]
    
    TASK [Display the config]
    *************************************************************************************************************************************
    ok: [vyos.example.net] => {
        "msg": "The hostname is vyos and the OS is VyOS 1.1.8"
    }
    
    TASK [Update the hostname]
    *************************************************************************************************************************************
    changed: [vyos.example.net]
    
    TASK [Get changed config for VyOS devices]
    *************************************************************************************************************************************
    ok: [vyos.example.net]
    
    TASK [Display the changed config]
    *************************************************************************************************************************************
    ok: [vyos.example.net] => {
        "msg": "The new hostname is vyos-changed and the OS is VyOS 1.1.8"
    }
    
    PLAY RECAP
    ************************************************************************************************************************************
    vyos.example.net           : ok=5    changed=1    unreachable=0    failed=0
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat, Inc.