Mapeando uma unidade de rede em um convidado do Windows usando o Ansible
Estou tentando automatizar algumas tarefas nos convidados do Windows usando o Ansible e estou com alguns problemas ao mapear uma unidade de rede.
O que estou tentando fazer é mapear a unidade, fazer alguma coisa (no meu exemplo aqui, apenas tento listar os arquivos) e, em seguida, desmapear.
Quando executo o Ansible, a saída sugere que a unidade compartilhada foi mapeada com êxito, mas listar os arquivos e remover o mapeamento resultam em erros que indicam que a unidade não existe. ("Uma unidade com o nome 'K' não existe.")
Quando entro no convidado do Windows após executar o Ansible, a unidade é mapeada.
Se eu executar o Ansible enquanto estiver conectado, a unidade só ficará visível depois que eu sair e logon novamente. O script usado para montar a unidade também cria um arquivo no convidado para fins de depuração, e o arquivo aparece mesmo quando estou logado. Não preciso fazer logout e voltar novamente para que fique visível. Portanto, parece que apenas o mapeamento da unidade de rede requer logout e login para entrar em vigor.
Eu também tentei "net use
"para mapear a unidade e os resultados foram os mesmos.
Meu manual do Ansible se parece com isso. (Eu deixei de fora algumas partes sensíveis.)
tasks:
- name: Mount share
script: scripts/mount.ps1 {{ share }}
- name: Test
script: scripts/test.ps1
register: test
- name: Test stdout
debug: msg="{{ test.stdout }}"
- name: Test stderr
debug: msg="{{ test.stderr }}"
- name: Umount share
script: scripts/umount.ps1
mount.ps1.
param([string]$share)
$share | Out-File c:\ansible-test\debug.txt
New-PSDrive -Name "K" -PSProvider FileSystem -Root "$share" -Persist
test.ps1
Get-ChildItem K:\
umount.ps1
Remove-PSDrive "K"