So far, we've implemented the following features:到目前為止,我們已經實現了以下功能:
Fact storage其實存儲
Full catalog storage全目錄存儲
containment edges遏制邊緣
Dependency edges依賴邊緣
Catalog metadata目錄元數據
Full resource list with all parameters所有參數全部資源列表
Node-level tags節點級標籤
Node-level classes節點級班
REST Fact retrieval REST事實檢索
all facts for a given node對於一個給定節點的所有事實
REST Resource querying REST資源查詢
super-set of storeconfigs query API超集查詢API storeconfigs
boolean operators布爾運算符
can query for resources spanning multiple nodes and types可以查詢跨越多個節點和類型的資源
Storeconfigs terminus storeconfigs總站
drop-in replacement of stock storeconfigs code下拉更換股票storeconfigs代碼
export resources出口資源
collect resources收集資源
fully asynchronous operation (compiles aren't slowed down)完全異步操作(編譯沒有放慢)
much faster storage, in much less space更快的存儲,在少得多的空間
Inventory service API compatibility庫存服務API兼容性
query nodes by their fact values他們其實值的查詢節點
drop-in replacement for Puppet Dashboard and PE console inventory service下拉更換木偶儀錶板和PE控制台庫存服務
Components組件
PuppetDB consists of several, cooperating components: PuppetDB幾個,合作的組成部分包括:REST-based command processor基於REST的命令處理器 PuppetDB uses a CQRS pattern for making changes to its domain objects (facts, catalogs, etc). PuppetDB使用域對象(事實,目錄等)的變化1 CQRS格局。Insteadof simply submitting data to PuppetDB and having it figure out theintent, the intent needs to be explicitly codified as part of theoperation.只需提交數據PuppetDB和它搞清楚的意圖,而不是意圖必須明確編纂作為行動的一部分。This is known as a “command” (eg “replace the current facts for node X”).這就是所謂的“命令”(如“節點X取代目前的事實”)。
Commandsare processed asynchronously; however, do our best to ensure that oncea command has been accepted, it will eventually be executed.命令是異步處理,然而,竭盡所能,以確保一次命令已被接受,它最終將被執行。Ordering is also preserved.還保存著排列。To do this, all incoming commands are placed in a message queue which the command processing subsystem reads from in FIFO order.要做到這一點,所有傳入的命令被放置在訊息佇列中的命令處理子系統讀取FIFO順序。
Submission of commands is done via HTTP.通過HTTP提交的命令。See the API spec in the navigation sidebar for complete documentation.看到完整的文檔,在導航欄的API規範。There is a specific required wire format for commands, and failure to conform to that format will result in an HTTP error.有一個特定的命令所需的電線格式,不符合該格式將導致http錯誤。
Currently, PuppetDB's data is stored in a relational database.目前,PuppetDB的數據存儲在關係資料庫中。There are two supported databases:支持的資料庫有兩個:
An embedded HSQLDB.一個嵌入的HSQLDB。This does not require a separate database service, and is thus trivial to setup.這並不需要一個單獨的資料庫服務,因而是微不足道的設定。This database is intended for proof-of-concept use; we do not recommend it for long-term production use.這個資料庫被用於概念證明使用,我們不建議長期生產使用。
PostgreSQL PostgreSQL的
There is no MySQL support, as MySQL lacks support for recursive queries (critical for future graph traversal features).有沒有MySQL的支持,因為MySQL缺乏支持遞歸查詢(未來圖的遍歷功能的關鍵)。
Read-only requests (resource queries, fact queries, etc.) are done using PuppetDB's REST APIs.使用PuppetDB的REST API的唯讀請求(資源查詢,其實查詢等)完成。Each REST endpoint is documented in the API spec; see the navigation sidebar.每個REST端點被記錄在API規範;看到導航欄。
Remote REPL遠程的REPLFor debugging purposes, you can open up a remote clojure REPL and use it to modify the behavior of PuppetDB, live.出於調試目的,你可以打開一個遠程的Clojure 的REPL,並用它來 修改的PuppetDB,現場的行為。
Vim support would be a welcome addition; please submit patches! Vim的支持將是一個值得歡迎的除了請提交補丁!