2016-11-11 64 views

回答

1

事實是一個鍵/值數據對,表示節點狀態的某些方面,例如其IP地址,正常運行時間,操作系統或其是否爲虛擬機。

1.手動過程是:

一個。登錄到工頭UI,單擊監視器 - >事實

b。運行在主機上

facter -p

2.自動化: 我寫了下面的腳本從每個主機檢查事實

#!/usr/bin/python 
import requests 
import json 

foreman_url = "https://foreman_ip/api/hosts" 
username = "admin" 
password = "changeme" 
node = "node1.puppet.com" 
headers = { 
    'Content-Type': 'application/json', 
    'Accept': 'application/json', 
}  
def retrive_hostid(): 
    host_id = requests.get(foreman_url, headers=headers, verify=False, auth=(username, password)) 
    hostobj = json.loads(host_id.content) 
    for s in hostobj: 
    print s['host']['name'] 
    host_name = s['host']['name'] 
    url = foreman_url + host_name + '/facts' # check facts from each hosts 
    print url 
    response = requests.get(url, headers=headers, verify=False, auth=('admin', 'changeme')) 
    #print response 
    respobj = json.loads(response.content) 
    print respobj['total'] # display total number of facts found 

retrive_hostid()