1. 程式人生 > >virtualbox+vagrant學習-2(command cli)-25-Machine Readable Output

virtualbox+vagrant學習-2(command cli)-25-Machine Readable Output

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