インポート要求 のインポートJSONを 試し: インポートcookielibを 除い: インポートザ・http.cookiejar cookielib AS #使用urllib2のHTTPSリクエストエラー、提供さん のインポートSSL コンテキスト = ssl._create_unverified_context() クラスSaltAPI(オブジェクト): 「」 " クラス定義インターフェース塩API 初期GETトークン "" " DEF __init__ (セルフ): self.url = " https://192.168.1.165:8001/ " self.username = " XXX " self.password = " XXX " self.headers = { " のUser-Agent ":" Mozillaの/ 5.0(Windows NTの10.0; WOW64)のAppleWebKit / 537.36(ヤモリのようにKHTML、)クローム/ 50.0.2661.102サファリ/ 537.36 " 、 " コンテンツ型":" アプリケーション/ JSON " #"コンテンツタイプ": "アプリケーション/ X-YAML" } self.params = { ' クライアント':' ローカル'、'楽しいです":'' 、' TGT ':'' } self.login_url = self.url + " ログイン" self.login_params = { ' ユーザ名':self.username、' パスワード':self.password、' eauth ':' PAM ' } self.token = self.get_data(self.login_url、self.login_params)' トークン' ] self.headers [ ' X-AUTH-トークン'] = self.token DEF get_data(自己、URL、paramsは): SEND_DATA = json.dumps(paramsは) リクエスト = requests.post(URL、データ= SEND_DATA、ヘッダー= self.headers、ベリファイ= 偽) 応答 = request.json() 結果 = 辞書を(レスポンス) の戻り結果[ ' リターン' ] [0] デフremote_execution_module(自己、TGT、楽しい、引数 ):""」 远程执行模块、有参数 :PARAM TGT:子分リスト :のparam楽しい:模块 :PARAM引数:参数 :リターン:辞書、{ 'minion1': 'RET'、 'minion2': 'RET'} ""」 のparams = { ' クライアント':' ローカル'、' TGT ':TGT、' 楽しい':楽しい、' 引数' :引数} 戻りself.get_data(self.url、paramsは) DEF salt_command(自己、TGT、メソッド、引数= なし): "" " 远程执行命令、相当于塩'CLIENT1' cmd.run '自由-m' """ もし引数: のparams = { ' クライアント':"ローカル「」楽しい':方法、' TGT ':TGT、' 引数' :引数} 他: のparams = { ' クライアント':' ローカル' ' 楽しい':方法、' TGT ' :TGT} #の印刷('命令参数' 、paramsは) 結果= self.get_data(self.url、paramsは) 戻り結果 #获取信息 @task DEF push_host_by_salt_tasks(): 塩 =SaltAPI() minions_list = [ ' cpu_model ' 、 ' fqdn_ip4 ' 、 ' OS ' 、 ' ディスク' 、 ' GPUは' 、 ' ID ' 、 ' のIPv4 ' 、 ' カーネル' 、 ' localhostを' 、 ' machine_id ' 、 'マスター"、 ' NUM_CPUS ' 、 ' saltpath ' 、 ' SELinuxの' 、 ' SERVER_ID ' 、 ' 仮想' 、 ' machine_id ' 、 ' パス' 、 ' swap_total ' 、 ' systemdに' 、 ' ユーザ名' 、 ' kernelrelease ' 、 ] 右= salt.remote_execution_module(' * '、' grains.item ' 、minions_list) リターン Server_Asset_Record.Excu.insert(RET)
塩「* 」 grains.itemsの #は、サーバのパラメータを取得します。