2016-07-03 3 views
0

질문이 있습니다.복수 역할에 사용할 수있는 vsphere 사실

나는 기본적으로 두 가지 역할을 수행 할 플레이 북을 가지고 있습니다. 첫 번째 역할은 pysphere 플러그인을 통해 VMware vCenter에 연결하고 가상 시스템을 만든 다음 MAC 주소를 "수집"하여 해당 MAC 주소를 "학습"합니다. (2 개의 작업, 하나는 VM을 만들고 다른 하나는 사실을 수집합니다.)

그래서 내가 "디버그"하고 실제로 새로 만든 VM의 MAC을 볼 수 있습니다.

내 플레이 북의 두 번째 부분은 다른 서버에 연결하고 설치를위한 화식자 프로필을 만들 수있는 "셸"모듈을 통해 일부 구두수 명령을 입력하는 또 다른 역할을 실행하는 것입니다.

내가 달성하고자하는 VM을 만들고 파이 설치 프로필을 만들 수있을 것입니다

..

여기에 누락 된 부분은 .. 물론 VM의 MAC 주소 (렸기 때문에 그 파이에 필요한).

와 나는 ..

어떤 아이디어 첫번째 역할은 제 역할을 사용할 수에서 해당 MAC의 "사실/변수를"만들 수 없습니다? :)

는 JSON .. didnt 한 도움으로 fact_caching 사용하려고, 또는 내가 뭔가 잘못 ...

고맙습니다을 많이했다!

+0

새 VM에서 설치 프로그램을 실행할 수있는 경우 MAC 주소는 다음에서 사용할 수 있습니다 :'ansible_ .macaddress' ('-vvi/path/to/inventory를 실행하여''사실을 수집하는 것 ''을 테스트 할 수 있습니다. - m setup') – shaps

+0

아직 새 VM이 "존재하지"않기 때문에 설치를 실행할 수 없습니다. vCenter에서 생성되었지만 전원이 켜지지 않아서 vCenter에서 생성되었습니다. – bflance

답변

0

set_fact을 사용하여 사실을 설정하고 나중에 호스트 사이에서도 사실을 사용할 수 있습니다.

- hosts: host1 
    tasks: 
    - shell: date | md5sum | head -c 8 
     register: random_string_cmd 
    - set_fact: 
     random_string: "{{ random_string_cmd.stdout }}" 

- hosts: host2 
    tasks: 
    - shell: echo "The random string generated on previous server is {{ hostvars['host1']['random_string'] }}" 

당신은뿐만 아니라 역할 내부 set_fact를 사용할 수 있습니다
이 예는 임의의 문자열 (그것은 당신의 예에서 VM의 MAC이라고 가정) 및 다른 서버에서 나중에 사용을 생성합니다.