virtualbox+vagrant學習-2(command cli)-25-Machine Readable Output
阿新 • • 發佈:2018-12-25
Machine Readable Output機器可讀的輸出
每個vagrant命令都接受一個--machine-readable的標誌,它支援機器可讀的輸出模式。在這種模式下,終端的輸出被機器友好的輸出所替代。
這種模式使以程式設計方式執行vagrant和從中讀取資料變得容易。這種輸出格式由我們的向後相容策略保護。
然而,在Vagrant 2.0釋出之前,隨著我們為其確定更多的用例,機器可讀的輸出可能會發生變化。但是向後相容的承諾應該使編寫客戶機庫來解析輸出格式變得安全。
⚠️這是一個高階主題,僅當你希望以程式設計方式執行Vagrant時才使用。如果你剛剛開始使用Vagrant,你可以安全地跳過這一部分。
1)Work-In-Progress 正在進行中
機器可讀的輸出是一個非常新的概念(作為Vagrant 1.4的一部分發布)。我們仍然在為它收集用例,併為每個命令構建輸出。由於缺少資訊,可能無法實現機器可讀輸出。
2)Format格式
機器可讀格式是面向行的、逗號分隔的文字格式。這使得使用標準的Unix工具(如awk或grep)以及完整的程式語言(如Ruby或Python)來解析變得非常容易。
其格式為:
timestamp,target,type,data...
內容解釋:
- timestamp :訊息列印時的UTC Unix時間戳
- target : 目標是以下輸出的目標。如果訊息與全球Vagrant相關,則此值為空。否則,這通常是一個機器名,因此在使用多vm時,你可以將輸出關聯到特定的機器。
- type : 型別是被輸出的機器可讀訊息的型別。稍後將介紹一組標準型別。
- data : 資料是與前一種型別相關聯的零個或多個逗號分隔的值。該資料的確切數量和含義依賴於型別,因此必須閱讀與該型別相關的文件才能完全理解。
在格式中,如果資料包含逗號,則用%!(VAGRANT_COMMA)替換。這是比如\'等轉義字元更好的選擇,因為它對如awk等工具更友好。
格式中的換行被替換為各自的標準轉義序列。換行成為輸出中的一個文字\n,回車變成文字\r。
3)Types型別
本節記錄所有可用的型別,這些型別可以通過機器可讀的輸出輸出。
Type | Description |
---|---|
box-name | Name of a box installed into Vagrant. |
box-provider | Provider for an installed box. |
cli-command | A subcommand of vagrant that is available. |
error-exit | An error occurred that caused Vagrant to exit. This contains that error. Contains two data elements: type of error, error message. |
provider-name | The provider name of the target machine. targeted |
ssh-config | The OpenSSH compatible SSH config for a machine. This is usually the result of the "ssh-config" command. targeted |
state | The state ID of the target machine. targeted |
state-human-long | Human-readable description of the state of the machine. This is the long version, and may be a paragraph or longer. targeted |
state-human-short | Human-readable description of the state of the machine. This is the short version, limited to at most a sentence. targeted |