まず、簡単に説明すると、ターゲットホスト:RHEL7、カーネル3.10、Python2.7
ターゲットホストには、次のタスクを実行するPerlスクリプト(特定のユーザーが実行)があります。
kdestroy -A
kinit user@domain -kt path_to_keytab
ホストコンピュータで(「scriptrunner」ユーザーとして)エラーなしですべてのコマンドを実行できます。ただし、Ansibleを使用すると、「kinit:デフォルトのccacheをインポートすると、永続キーリング名に無効なUID」エラーが発生します。
プレイブックは資格情報とともに「sudo」エスカレーションモードを使用してAnsibleTowerで実行され、プレイブック自体はTurn:yesとTurn_user:scriptrunnerを使用するため、ユーザーは端末でコマンドを実行したときと同じです。
コマンドモジュールを使ってコマンドを実行してみました。
command: /bin/kdestory -A and
command /bin/kinit someuser@domain -kt path_to_keytab.
また、スクリプト全体を次のように実行してみました:コマンド:/bin/bash -c -l thescript.sh。結果は常に同じです。
なぜこれですか?どんなアイデアがありますか?
答え1
実行してもunset KRB5CCNAME
問題が解決しない場合は、最初にkinitまたはklistを使用する前に必要な一時Kerberos資格情報キャッシュを作成できます。
export KRB5CCNAME=`mktemp`
それでも問題が解決しない場合は、「default_ccache_name」の値を/etc/krb5.conf
ローカルファイルに変更してみてください。
[libdefaults]
# ...
# default_ccache_name = KEYRING:persistent:%{uid}
default_ccache_name = /tmp/krb5cc_%{uid}