2

私は 1 つの .fab ファイルにすべての構成を含む python ファブリックを使用しています。
機密データをパスワードとして別のファイルに入れ、fab メイン ファイルにインポート/ロードするにはどうすればよいですか?

4

1 に答える 1

2

fabfile.py内に単純な関数を定義して、別のファイルからパスワードを読み取ります。次のようなもの:

def new_getpass(username):
    with open("/etc/passwd", "r") as f:
        for entry in [l.split(":") for l in f.readlines()]:
            if entry[0] == username:
                return entry
    return None

これはNone、ユーザー名が見つからない場合に返され、ユーザーが見つかった場合はユーザーのレコード全体がリストとして返されます。

明らかに私の例はからデータを取得して/etc/passwdいますが、この基本的な機能を独自のファイルに簡単に適合させることができます。

credentials.dat

database1|abcd1234
database2|zyxw0987

次に、上記のコードをこのように使用するように変更しましたが、パスワードのみを返すように少し変更しました(データベース名がわかっているため)。

def getpass(database):
    with open("credentials.dat", "r") as f:
        for entry in [l.split("|") for l in f.readlines()]:
            if entry[0] == username:
                return entry[1]
    return None

インポートほど単純ではありませんが、プレーンテキストファイルを使用して資格情報をに保存できる柔軟性を提供します。

于 2012-10-04T22:46:52.667 に答える