구문 분석 된 인수를 기반으로 libvirt 손님을 생성 할 수있는 가능성있는 플레이 북이 있습니다. 나는 플레시 북을 추가 인수로 확장하려고하는데, 이는 손님 OS를 specidied 가상 네트워크에 연결하고 파일에 작성된 사용자 정의 mac 주소를 할당 할 수있게 해줍니다.조건부 및 레지스터 stdoutput이있는 복잡한 루프 루프
플레이 북은 다음과 같이 호출한다 :
:ansible-playbook -e "CPU=2 MEMORY=1024 VM_STORAGE=/tmp/zz VM_NAME=desktop5 VM_NETWORK=bridge,Isolated2" vm.yml
마지막 단계의 하나로서 내가 네트워크 카드를 작성하고 다음과 같은 형식의 파일에 정의 된 특정 MAC 주소를 사용했다
#NAT#52:54:00:aa:aa:01#desktop1
#bridge#52:54:00:aa:bb:01#desktop1
#Isolated1#52:54:00:aa:cc:01#desktop1
#Isolated2#52:54:00:aa:dd:01#desktop1
지정된 추가 인수 인 -e VM_NETWORK을 기반으로 네트워크 인터페이스를 연결하고 mac 주소를 결정하는 기능 만있는 playbook 기능을 사용하는 방법을 설명합니다.
은 지금까지 나는 다음과 함께 :
- name: Setting up network
shell: "/bin/grep -e {{ vm_name }} {{ mac_file }} | grep -e {{ item }} | awk -F\"#\" '{print $3}'"
register: vm_mac
command: "/usr/bin/virsh attach-interface --domain {{ vm_name }} --type bridge --source 'bridge0' --model virtio --mac {{ vm_mac }} --config"
when: item == "bridge"
with_items:
- "{{ VM_NETWORK.split(',') }}"
을하지만, 문제는 하나의 작업에서 명령 쉘 조치를 가질 수있다? 쉘 스크립트를 호출하여 mac 주소를 가져 와서 명령에서 사용해야합니까?
인터페이스를 연결하거나 분리하기 위해 virsh 명령을 실행하는 bash 스크립트가 있지만 현재 동적 인 방법으로 동적으로 수행하는 방법이 있는지 궁금합니다.