O erro encontrado está relacionado ao fato de que o contexto da execução do script domain.sh
é diferente quando você está conectado e quando é executado remotamente pelo Ansible. Veja este SO pergunta para mais detalhes.
Você precisa concluir o script /root/startup_jboss.sh
com as variáveis de ambiente ausentes para funcionar corretamente. Você pode testá-lo nas mesmas condições que o ansible com um comando SSH remoto:
ssh root@<your node> /root/startup_jboss.sh
Você pode usar o Ansible para executar um script de shell em um servidor remoto, mas não acho que seja a solução correta em seu caso de uso.
Ansible é uma ferramenta de Gerenciamento de Configuração projetada para descrever estados desejados para seus recursos (arquivos, processos, direitos, ...) e garantir idempotência (somente o mudanças que são necessárias são feitas, você pode executar seu script várias vezes e sempre obterá o mesmo estado ). Em seu caso de uso, você gostaria de garantir que o JBoss esteja sendo executado no modo de domínio em seu servidor remoto. A maneira como eu lidaria com isso é encapsular o script domain.sh
dentro de um script init para que ele seja executado como um serviço e eventualmente configurar esse serviço para ser executado na inicialização do servidor .
Eu não sei qual é a sua distribuição linux, mas você pode dar uma olhada aqui para um exemplo de um script init.d
para o Debian.
No seu manual de startup.yml
você copia primeiro o script init.d
e, em seguida, garante que seu serviço esteja sendo executado (o Ansible fornece um módulo nativo para gerenciar serviços ).