4

Vagrant を Ansible で実行しようとして問題に直面しています。Windows 7 のターミナル (git bash) で実行しようとしたときに発生するエラーはvagrant up次のとおりです。vagrant provision

ERROR! Unexpected Exception: Non-hexadecimal digit found
to see the full traceback, use -vvv
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

これは、Ansible-vaultファイル.vault_passが 16 進数ではない (文字列であり、変更できない) ために発生します。同僚のコンピュータでは正常に動作しますが、私のコンピュータでは動作しません。

.vault_passファイル内の問題のある文字列は次のようになりますDBAKWeG3KOr3jKjBDbAz

問題はPythonにあると思いますが、よくわかりませんし、修正方法もわかりません。

これを追加しようとする-vvvと、結果は次のようになります。

エラー!予期しない例外: 16 進数以外の数字が見つかりました
完全なトレースバックは次のとおりです。

トレースバック (最新の呼び出しが最後):
  ファイル「/usr/bin/ansible-playbook」の 92 行目
    exit_code = cli.run()
  ファイル「/usr/lib/python2.7/dist-packages/ansible/cli/playbook.py」、132 行目、実行中
    在庫 = 在庫 (ローダー = ローダー、変数マネージャー = 変数マネージャー、ホスト リスト =self.options.inventory)
  ファイル「/usr/lib/python2.7/dist-packages/ansible/inventory/__init__.py」、85 行目、__init__ 内
    self.parse_inventory(ホストリスト)
  ファイル「/usr/lib/python2.7/dist-packages/ansible/inventory/__init__.py」、144 行目、parse_inventory 内
    group.vars = Combine_vars(group.vars, self.get_group_variables(group.name))
  ファイル "/usr/lib/python2.7/dist-packages/ansible/inventory/__init__.py"、行 509、get_group_variables 内
    self._vars_per_group[グループ名] = self._get_group_variables(グループ名、vault_password=vault_password)
  ファイル「/usr/lib/python2.7/dist-packages/ansible/inventory/__init__.py」、527 行目、_get_group_variables 内
    vars = convert_vars(vars, self.get_group_vars(グループ))
  ファイル "/usr/lib/python2.7/dist-packages/ansible/inventory/__init__.py"、707 行目、get_group_vars 内
    return self._get_hostgroup_vars(ホスト=なし、グループ=グループ、new_pb_basedir=new_pb_basedir)
  ファイル「/usr/lib/python2.7/dist-packages/ansible/inventory/__init__.py」、746 行目、_get_hostgroup_vars 内
    結果 = 結合変数 (結果、自己._変数マネージャー.追加グループ変数ファイル (ベースパス、自己._ローダー))
  ファイル「/usr/lib/python2.7/dist-packages/ansible/vars/__init__.py」、行 578、add_group_vars_file 内
    (名前、データ) = self._load_inventory_file(パス、ローダー)
  ファイル「/usr/lib/python2.7/dist-packages/ansible/vars/__init__.py」、535 行目、_load_inventory_file 内
    _found, results = self._load_inventory_file(パス=p, ローダー=ローダー)
  ファイル「/usr/lib/python2.7/dist-packages/ansible/vars/__init__.py」、550 行目、_load_inventory_file 内
    データ = loader.load_from_file(パス)
  ファイル「/usr/lib/python2.7/dist-packages/ansible/parsing/dataloader.py」、113 行目、load_from_file 内
    (file_data, show_content) = self._get_file_contents(ファイル名)
  ファイル「/usr/lib/python2.7/dist-packages/ansible/parsing/dataloader.py」、172 行目、_get_file_contents
    データ = self._vault.decrypt(データ)
  ファイル「/usr/lib/python2.7/dist-packages/ansible/parsing/vault/__init__.py」、169 行目、復号化中
    b_data = this_cipher.decrypt(b_data, self.b_password)
  ファイル「/usr/lib/python2.7/dist-packages/ansible/parsing/vault/__init__.py」、674 行目、復号化中
    データ = unhexlify(データ)
TypeError: 16 進数以外の数字が見つかりました
Ansible は正常に完了できませんでした。エラー出力はすべて
上に見える。これらのエラーを修正して、もう一度お試しください。
4

4 に答える 4

5

この問題は、エンコードされたファイルにキャリッジ リターン (\r) 記号が含まれている場合に発生することがあります。

git 経由でファイルを取得した場合は、git を正しく構成する必要がありますcore.eol = lf.gitconfig

于 2016-06-23T22:04:48.273 に答える