ラベル ansible の投稿を表示しています。 すべての投稿を表示
ラベル ansible の投稿を表示しています。 すべての投稿を表示

ansibleでUNREACHABLEでエラーになる場合の対応方法

以下のようなメッセージが出力される場合、
fatal: [host]: UNREACHABLE! => {"changed": false, "msg": "ERROR! SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh", "unreachable": true}
次のように、sftpの代わりにscpを使う
ANSIBLE_SCP_IF_SSH=y  ansible-playbook -i staging site.yml -u root -k

ansibleをローカルで実行する。

-c localオプションを指定する。

# ansible-playbook -c local -i hosts playbook.yaml

Ansibleでのリモート側のシェルのエスケープシーケンスにるエラー

ansibleを使っていて、ハマった。リモート側の.bashrcには、screenのために次のような設定がある。
function printdir() {
  echo -en "\033k[$SCREEN_HOST$(pwd | awk '{ print $(NF) }' FS='/')]\033\\"
}

if [ x$TERM = xscreen ]; then
  PROMPT_COMMAND='printdir'
fi
そのため、ansibleで次のような一見不可解なエラーが発生した。
GATHERING FACTS *************************************************************** 
failed: [remote] => {"failed": true, "parsed": false}
invalid output was: SUDO-SUCCESS-dxwtmneadzzelqvobbmnbtbhweqmixhr
/usr/bin/python: can't open file '
単純な回避方法は、次のように実行時にTERMを適当なもの(xterm)に変更すること。
$ TERM=xterm ansible-playbook -i hosts playbook.yaml