LINUX.ORG.RU
решено ФорумAdmin

ansible esxcli

 , ,


0

2

Доброго дня.

Есть сеть, в ней несколько разрозненных машин с vmware.

Нужно подключаться к ним и выполнять команды. Использую ansible. К части машин подключается и выводит ответ, к части нет и дает ошибку :


192.168.1.3 | FAILED | rc=0 >>
MODULE FAILURE

При этом руками по ssh на машины с ошибкой заходит и команды корректно выполняет.

Пробовал собирать логи ansible и verbose режим - ничего нового к ошибке не добавляет. С esxcli практически не знаком, проверял файрвол :

~ # esxcli network firewall ruleset list 
Name                Enabled
------------------  -------
sshServer              true
sshClient             false
nfsClient             false
dhcp                   true
dns                    true
snmp                   true
ntpClient              true
CIMHttpServer          true
CIMHttpsServer         true
CIMSLP                 true
iSCSI                 false
vpxHeartbeats          true
updateManager         false
faultTolerance         true
webAccess              true
vMotion                true
vSphereClient          true
activeDirectoryAll    false
NFC                    true
HBR                    true
ftpClient             false
httpClient            false
# running from inetd
# Port 2200
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key 

Видимо проблема на стороне vmware , что еще можно сделать \ посмотреть?


Не работал с этим модулем, но рекомендую в первую очередь взять релиз «постарше» (а не тестовую ветку), если это не поможет то руками запилить debug в файле модуля (посмотреть где там могут быть проблемы и постараться залогировать).

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy

В смысле взять релиз постарше и в смысле не работали?

модуль command

буквально я запускаю вот что:

# ansible vmware -v -m command -a "uname -a"
Using /etc/ansible/ansible.cfg as config file
192.168.1.3 | FAILED | rc=0 >>
MODULE FAILURE

192.168.1.4 | SUCCESS | rc=0 >>
VMkernel forge 6.0.0 #1 SMP Release build-3620759 Mar  3 2016 18:41:52 x86_64 x86_64 x86_64 ESXi

c модулем ничего не делал, что встало из репозиториев CentOs, то и использую. Почему вы думаете что модуль астарел и почему вы думаете что проблема в нем?

Как залогировать проблемы в модуле?

guo
() автор топика
Ответ на: комментарий от guo

Я думал моуль для vmware какой-то используется (ну и вообще я вместо command использую shell, так что в целом не обманул на тему того что не работал с ним =) ).

Почему вы думаете что модуль астарел и почему вы думаете что проблема в нем?

Я говорил про Ansible в целом и советовал не обновляться, а откатиться на стабильную версию. Что у вас говорит ansible --version?

Ну и добавьте verbose'а - запустите не с ключем -v а с -vvv.

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy
# ansible --version
ansible 2.1.2.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
# ansible vm1 -vvv -m command -a "uname -a"
Using /etc/ansible/ansible.cfg as config file
<192.168.16.2> ESTABLISH SSH CONNECTION FOR USER: root
<192.168.16.6> ESTABLISH SSH CONNECTION FOR USER: root
<192.168.16.6> SSH: EXEC sshpass -d15 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r 192.168.16.6 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1478520919.11-5067024864446 `" && echo ansible-tmp-1478520919.11-5067024864446="` echo $HOME/.ansible/tmp/ansible-tmp-1478520919.11-5067024864446 `" ) && sleep 0'"'"''
<192.168.16.2> SSH: EXEC sshpass -d14 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r 192.168.16.2 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1478520919.11-37912183957151 `" && echo ansible-tmp-1478520919.11-37912183957151="` echo $HOME/.ansible/tmp/ansible-tmp-1478520919.11-37912183957151 `" ) && sleep 0'"'"''
<192.168.16.6> PUT /tmp/tmptzFMg5 TO //.ansible/tmp/ansible-tmp-1478520919.11-5067024864446/command
<192.168.16.6> SSH: EXEC sshpass -d15 sftp -o BatchMode=no -b - -C -o ControlMaster=auto -o ControlPersist=60s -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r '[192.168.16.6]'
<192.168.16.6> ESTABLISH SSH CONNECTION FOR USER: root
<192.168.16.6> SSH: EXEC sshpass -d15 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r 192.168.16.6 '/bin/sh -c '"'"'chmod u+x //.ansible/tmp/ansible-tmp-1478520919.11-5067024864446/ //.ansible/tmp/ansible-tmp-1478520919.11-5067024864446/command && sleep 0'"'"''
<192.168.16.6> ESTABLISH SSH CONNECTION FOR USER: root
<192.168.16.6> SSH: EXEC sshpass -d15 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r -tt 192.168.16.6 '/bin/sh -c '"'"'LANG=ru_RU.UTF-8 LC_ALL=ru_RU.UTF-8 LC_MESSAGES=ru_RU.UTF-8 /usr/bin/python //.ansible/tmp/ansible-tmp-1478520919.11-5067024864446/command; rm -rf "//.ansible/tmp/ansible-tmp-1478520919.11-5067024864446/" > /dev/null 2>&1 && sleep 0'"'"''
<192.168.16.2> PUT /tmp/tmpPj_fse TO /root/.ansible/tmp/ansible-tmp-1478520919.11-37912183957151/command
<192.168.16.2> SSH: EXEC sshpass -d14 sftp -o BatchMode=no -b - -C -o ControlMaster=auto -o ControlPersist=60s -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r '[192.168.16.2]'
<192.168.16.2> ESTABLISH SSH CONNECTION FOR USER: root
<192.168.16.2> SSH: EXEC sshpass -d14 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r 192.168.16.2 '/bin/sh -c '"'"'chmod u+x /root/.ansible/tmp/ansible-tmp-1478520919.11-37912183957151/ /root/.ansible/tmp/ansible-tmp-1478520919.11-37912183957151/command && sleep 0'"'"''
192.168.16.6 | FAILED | rc=0 >>
MODULE FAILURE

<192.168.16.2> ESTABLISH SSH CONNECTION FOR USER: root
<192.168.16.2> SSH: EXEC sshpass -d14 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r -tt 192.168.16.2 '/bin/sh -c '"'"'LANG=ru_RU.UTF-8 LC_ALL=ru_RU.UTF-8 LC_MESSAGES=ru_RU.UTF-8 /usr/bin/python /root/.ansible/tmp/ansible-tmp-1478520919.11-37912183957151/command; rm -rf "/root/.ansible/tmp/ansible-tmp-1478520919.11-37912183957151/" > /dev/null 2>&1 && sleep 0'"'"''
192.168.16.2 | SUCCESS | rc=0 >>
Linux datastore 2.6.32-28-generic-pae #55-Ubuntu SMP Mon Jan 10 22:34:08 UTC 2011 i686 GNU/Linux
guo
() автор топика
Ответ на: комментарий от guo

Никаких noexec у вас там не накручено при монтировании /tmp и /root? Еще, кстати, посмотрите /var/log/messages (или что там в centos вместо него) на проблемном хосте (да и логи аудита заодно).

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy

Я так понимаю вот так выглядит попытка залогиниться и выполнить комманду в логах esxi.

2016-11-07T13:35:00.057Z [61C81B70 verbose 'Statssvc.vim.PerformanceManager'] HostCtl Exception in stats collection: Sysinfo error on operation returned status : Not found. Please see the VMkernel log for detail
2016-11-07T13:35:00.057Z [61C81B70 verbose 'Statssvc.vim.PerformanceManager'] HostCtl Exception in stats collection: Sysinfo error on operation returned status : Not initialized. Please see the VMkernel log for
2016-11-07T13:35:00.057Z [61C81B70 verbose 'Statssvc.vim.PerformanceManager'] HostCtl Exception in stats collection.  Turn on 'trivia' log for details                        
2016-11-07T13:35:01.862Z [62081B70 verbose 'SoapAdapter'] Responded to service state request                                                                                                                       
pam_per_user: create_subrequest_handle(): doing map lookup for user "root"                                                                                                                                         
pam_per_user: create_subrequest_handle(): creating new subrequest (user="root", service="system-auth-generic")                                                                                                     
Accepted password for user root from 192.168.10.107                                                                                                                                                                
2016-11-07T13:35:05.097Z [60381B70 info 'Vimsvc.ha-eventmgr' opID=hostd-c2fb] Event 1740 : User root@192.168.10.107 logged in as                                                                                   
pam_per_user: create_subrequest_handle(): doing map lookup for user "root"                                                                                                                                         
pam_per_user: create_subrequest_handle(): creating new subrequest (user="root", service="system-auth-generic")                                                                                                     
Accepted password for user root from 192.168.10.107                                                                                                                                                               
2016-11-07T13:35:06.143Z [62081B70 info 'Vimsvc.ha-eventmgr' opID=hostd-b8d1] Event 1741 : User root@192.168.10.107 logged in as                                                                                   
2016-11-07T13:35:06.145Z [62081B70 warning 'Hostsvc.VFlashManager' opID=hostd-46b8 user=root] GetVFlashResourceRuntimeInfo: vFlash is not licensed, not supported                                                  
2016-11-07T13:35:06.165Z [62081B70 info 'Hostsvc' opID=hostd-46b8 user=root] VsanSystemVmkProvider : GetRuntimeInfo: Start                                                                                         
2016-11-07T13:35:06.165Z [62081B70 info 'Hostsvc' opID=hostd-46b8 user=root] VsanSystemVmkProvider : GetRuntimeInfo: Complete, runtime info: (vim.vsan.host.VsanRuntimeInfo) {                                     
-->    dynamicType = <unset>,                                                                                                                                                                                     
-->    accessGenNo = 0,                                                                                                                                                                                            
--> }                                                                                                                                                                                                             
2016-11-07T13:35:06.165Z [62081B70 warning 'Hostsvc.VFlashManager' opID=hostd-46b8 user=root] GetVFlashResourceRuntimeInfo: vFlash is not licensed, not supported                                                  
2016-11-07T13:35:06.184Z [62081B70 info 'Hostsvc' opID=hostd-46b8 user=root] VsanSystemVmkProvider : GetRuntimeInfo: Start                                                                                         
2016-11-07T13:35:06.184Z [62081B70 info 'Hostsvc' opID=hostd-46b8 user=root] VsanSystemVmkProvider : GetRuntimeInfo: Complete, runtime info: (vim.vsan.host.VsanRuntimeInfo) {                                     
-->    dynamicType = <unset>,                                                                                                                                                                                      
-->    accessGenNo = 0,                                                                                                                                                                                            
--> }                     

guo
() автор топика
Ответ на: комментарий от guo

Ну это все равно ничего не дает. Не пойму только почему у вас логин два раза подряд идет.

А /bin/sh там действительно sh? (Не знаю в чем проблема, пробую угадать...)

alozovskoy ★★★★★
()
Ответ на: комментарий от Deleted

права на /temp в esxi в работающей и не работающей системах

drwxrwxrwt 1 root root 512 Nov 7 14:05 tmp

guo
() автор топика
Ответ на: комментарий от alozovskoy

в обеих системах

#echo $SHELL /bin/sh

guo
() автор топика

На вскидку, проблема либо в ключах доступа либо с пользователем или паролем. Ansible в плане простого дебага просто ужасен. IMHO.

merlin-shadow
()

Решилось использованием модуля raw. Проблема в том что модули command и shell пытаются выполнить питоновский код на удаленной машине. Модуль же raw отправляет команду в «сыром» виде, на ваш страх и риск. На esxi ветки 5.х этот питоновский код не выполняется, на ветке 6.х выполняется, поэтому я получал такой вывод.

guo
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.