Ansible은 호스트 이름을 설정할 수 없습니다.

Ansible은 호스트 이름을 설정할 수 없습니다.

Ansible에 문제가 있습니다. VM의 로컬 호스트 이름을 Ansible 인벤토리 이름으로 설정하려고 합니다.

내 작업은 다음과 같습니다

  - name: set hostname to {{ inventory_hostname }}
    hostname:
      name:
        - "{{inventory_hostname}}"

플레이북을 실행하면 다음 오류가 발생합니다.

fatal: [sl-testvm101]: FAILED! => {"changed": false, "msg": "Command failed rc=1, out=, err=\u001b[0;1;31mCould not set property: Invalid hostname '['sl-testvm101']'\u001b[0m\n"}

대상 호스트는 우분투 20.04.1입니다.

어떤 아이디어?

답변1

      name:
        - "{{inventory_hostname}}"

이는 YAML 목록입니다. 목록이나 문자열을 사용할 수 있는 곳이 있지만 이곳은 그중 하나가 아닙니다. 이 매개변수는 단일 문자열만 허용하므로 이를 전달해야 합니다. 그렇지 않으면 모듈은 호스트 이름을 목록의 문자열 표현으로 설정하려고 시도하는데, 이는 유효한 호스트 이름이 아니며 실패합니다.

      name: "{{ inventory_hostname }}"

관련 정보