임시 ansible cmd에 2개의 diff cmd를 추가할 수 있습니까?

임시 ansible cmd에 2개의 diff cmd를 추가할 수 있습니까?

Ansible의 임시 모드에서 2 diff cmd를 실행해야 합니까? 가능합니까?

1] 호스트 이름

2] df-h

# ansible example -s -a "hostname && df -h"

실수

```[root@ansi1 ansible]# ansible example -s -a "hostname && df -h"
ansi2.example.com | FAILED | rc=4 >>
Usage: hostname [-v] {hostname|-F file}      set hostname (from file)
       domainname [-v] {nisdomain|-F file}   set NIS domainname (from file)
       hostname [-v] [-d|-f|-s|-a|-i|-y|-A|-I]  display formatted name
       hostname [-v]                         display hostname

       hostname -V|--version|-h|--help       print info and exit

    dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y

    -s, --short           short host name
    -a, --alias           alias names
    -i, --ip-address      addresses for the hostname
    -I, --all-ip-addresses all addresses for the host
    -f, --fqdn, --long    long host name (FQDN)
    -A, --all-fqdns        all long host names (FQDNs)
    -d, --domain          DNS domain name
    -y, --yp, --nis       NIS/YP domainname
    -F, --file            read hostname or NIS domainname from given file

   This command can read or set the hostname or the NIS domainname. You can
   also read the DNS domain or the FQDN (fully qualified domain name).
   Unless you are using bind or NIS for host lookups you can change the
   FQDN (Fully Qualified Domain Name) and the DNS domain name (which is
   part of the FQDN) in the /etc/hosts file.
```

답변1

내 실수를 찾았어,,,멍청한 것

[root@ansi1 ansible]# ansible example -s -m shell -a "hostname && df -h"
ansi2.example.com | SUCCESS | rc=0 >>
ansi2.example.com
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_ansible2-lv_root
                      6.5G  980M  5.2G  16% /
tmpfs                 939M     0  939M   0% /dev/shm
/dev/sda1             477M   54M  398M  12% /boot

답변2

ansible명령을 실행하기 위해 쉘을 사용 하지 않는 것 같습니다 . 그러나 사용자 정의 명령에서는 분명히 셸 구문을 사용하고 있습니다 &&. 따라서 옵션 중 하나는 ansible에 쉘을 사용하도록 직접 지시하는 것입니다.

$ ansible localhost -s -a "bash -c 'hostname && df -h'"

관련 정보