Recentemente mudamos para a plataforma de automação Ansible 2.3. Meu ambiente de execução é ee-supported-rhel8 que contém o módulo Ansible.posix.synchronize.
Quando executo um módulo de sincronização, ele falha com:
"src: /tmp/memo.txt esse arquivo não existe".
Estava rodando na Torre 1.2 sem nenhum problema.
- Name: Install rsync on the Target
package:
name: rsync
state: present
- Name: Synchronize file from local to remote
synchronize:
src: /tmp/memo.txt
dest: /temp/test
Erro
"cmd":
"/usr/bin/rsync --delay-updates -F --compress --archive --rsh='/usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --out-format='<<CHANGED>>%i %n%L' /tmp/memo.txt root@xyz1234:/tmp/test"
,
"msg": "Aviso: 'xyz1234,148.168.65.73' (ECDSA) adicionado permanentemente à lista de hosts conhecidos. \r\nAVISO!\n Este sistema,… Para obter informações adicionais, consulte o aviso de privacidade dos funcionários da sua empresa local ou entre em contato com o seu Oficial de privacidade local. \nrsync: link_stat "/tmp/memo.txt" falhou: arquivo ou diretório inexistente (2)\nrsync erro: alguns arquivos/attrs não foram transferidos (veja erros anteriores) (código 23) em main.c (1189) [remetente=3.1.3]\n",
Mantive o arquivo de origem no nó de controle e no nó de execução e ele ainda está falhando.
Também mantive a fonte em um servidor remoto separado. Isso também está falhando. Está gerando um erro que a origem e o destino não podem estar remotos.
Por favor sugira.
O erro diz:
Resposta curta: O arquivo /tmp/memo.txt está faltando no controlador.
Detalhes: O primeiro exemplo mostra como usar o módulo
Por exemplo, a peça abaixo
sincroniza o arquivo /tmp/memo.txt no controlador com o arquivo /tmp/test no host remoto test_01 . Dado o arquivo no controlador
certifique-se de que o arquivo esteja sincronizado com o host remoto
O erro pode ser reproduzido removendo o arquivo /tmp/memo.txt do controlador:
Eu encontrei a solução.
AAP usa ambientes de execução que são contêineres. Se /tmp/memo.txt não for conhecido pelo contêiner, a tarefa falhará.
Se os arquivos a serem sincronizados fizerem parte do projeto que inclui o manual, ele estará presente dentro do contêiner. Se os arquivos/pastas a serem sincronizados residirem em outro lugar, você precisará delegar essas tarefas ao sistema de origem onde residem e que deseja sincronizar.
Obrigado pela ajuda