GNU/Linux >> Linux の 問題 >  >> Linux

すべてのDevOpsエンジニアが知っておくべきYAMLの基本

YAMLは、Ansible、Kubernetes、CI / CDパイプラインなどの重要なDevOpsツール、テクノロジー、プロセスの一部となったため、ここ数年で多くの人気を博しています。

AnsibleとKubernetesに関する多くのチュートリアルについてはすでに説明しました。 DevOpsツール構成をよりスムーズに操作できるように注意する必要があるように、YAMLの基本事項について説明することを考えました。

YAMLとは何ですか?

YAMLは"YAMLAin'tMarkupLanguage"の略です もともとは「YetAnotherMarkupLanguage」の頭字語でした。 YAMLは「データシリアル化」言語であり、基本的に人間が読める構造化データ形式です。

読み取りと書き込みに適した設計になっています。 YAMLのオブジェクトシリアル化機能は、JSONの実用的な代替手段としての役割を果たします。 YAMLはJSONのスーパーセットであり、インデントベースのスコープを使用してPythonのような構造を示します。

YAMLの例を次に示します:

--- 
 Student-ID: 314159
 First-Name: Linus
 Last-Name: Torvalds

Phone-numbers:
    - 281.555.7777
    - 832.676.8888
    - 937.996.9999

Addresses:
    - Street: 123 Main St.
    - City: Houston
    - State: Tx
---

常に覚えておくべきYAMLの基本ルール

YAMLファイルの解析中にエラーが繰り返されないようにする場合は、YAMLで作業するときに常に次の点に注意する必要があります。

  • YAMLではタブは使用できません。インデントにはスペースを使用する必要があります。
  • 子ノードのインデントが親よりも大きい限り、スペースの量は重要ではありませんが、同じ数のスペースを維持することをお勧めします。
  • YAMLのさまざまな要素の間にスペースが必要です(後で説明します)。
  • YAMLでは大文字と小文字が区別されます。
  • YAMLファイルは.yamlのような拡張子で終わる必要があります または.yml
  • YAMLでは、UTF-8、UTF-16、およびUTF-32エンコーディングが可能です。

YAML構文を理解しましょう。

YAMLファイルの要素:基本構文

YAMLファイルはデータを記述するために使用されます。 YAMLファイルでは、コンテンツはすべてキーと値のペアのコレクションに関するものです。 ここで、値は文字列からツリーまでの範囲であれば何でもかまいません。

例を挙げて理解しましょう。これはKubernetesサービスマニフェストファイルです。

kind: Service
metadata:  
  name: web-app-svc
spec:  
  type: NodePort  
  ports:  
  - port: 8080         #service port    
    targetPort: 8080   #Pod Port    
    nodePort: 30012  #Node Port from the range - 30000-32767  
  selector:    
    app: web-app

これがキーと値のペア要素のセットであることは自明です:Name: Value

上記のファイルからわかるように、YAMLファイルはいくつかの異なる要素で構成されています。一緒に、それらは多種多様な構造を記述するために使用することができます。

1。スペースまたはインデント

YAMLでは、タブではなく空白でインデントします。また、要素間にスペースが必要です。

正しい仕様:

Kind: Service

誤った指定:

Kind:Service

上記のステートメントでは、コロンの後にスペースがないためです!

2。 YAMLのコメント

コメントは、アイテムの前にハッシュを配置することで定義できます'# '。コメントは、行のどこの行の先頭にも作成できます。

YAML構成ファイルを確認すると、「#serviceport」などの3つのインラインコメントがあります。

3。スカラー(キー値)

スカラーは、ページ上のデータを構成する文字列と数値です。簡単に言えば、これらはキーと値のペアです。

kind: Service
metadata:  
  name: web-app-svc

4。コレクションとリスト

リストとコレクションの要素またはメンバーは、同じインデントレベルで始まり、ダッシュで始まり、その後にスペースが続く行です。

- web-app-prod 
- prod-deployments 
- prom-monitored

これは基本的なリストであり、リスト内の各アイテムが最初のダッシュで独自の行に配置されています。

5。ネストされたコレクション

アイテムとサブアイテムを含むネストされたシーケンスを作成する場合は、サブアイテムの各ダッシュの前に1つのスペースを配置することで作成できます。

- 
 - web-app-prod 
 - prod-deployments 
 - prom-monitored
-  
 - web-app-test 
 - staging-deployments 
 - not-monitored

6。辞書

辞書はkey: valueで構成されます コンテンツがインデントされたフォーマット。

ports:    
- port: 8080         #service port    
  targetPort: 8080   #Pod Port    
  nodePort: 30012  #Node Port from the range - 30000-32767

次のように、リストと辞書のコレクションをマージして混同することができます。

ports:    
- port: 8080         #service port    
  targetPort: 8080   #Pod Port    
  nodePort:       
  - 30012       
  - 30013       
  - 30014

これらはYAMLの非常に基本的な概念ですが、DevOpsエンジニアにとって不可欠です。

YAML用の特別なエディターは必要ありません。お気に入りのテキストエディタはすでにYAMLをサポートしているか、必要に応じてプラグインを使用しているはずです。

深く掘り下げて学ぶことができることはたくさんあります。そのためには、いつでもYAMLの公式ドキュメントを参照できます。

より良いシステム管理者またはDevOpsになりたいですか?今すぐLinuxハンドブックのメンバーになりましょう。


Linux
  1. すべてのLinuxユーザーが知っておくべき10個のコマンド

  2. Redhat vs Ubuntu:知っておくべき15の基本的な事実

  3. すべてのパワー Linux ユーザーが知っておくべき便利な Linux ターミナル ショートカット

  1. すべてのLinuxユーザーが知っておくべき3つの便利なハック

  2. すべてのシステム管理者が知っておくべき7つのLinuxネットワークコマンド

  3. 17すべてのシステム管理者が知っておくべきLinuxコマンド

  1. 12すべてのLinuxユーザーが知っておくべき便利なPHPコマンドラインの使用法

  2. 34すべてのユーザーが知っておくべき基本的なLinuxコマンド

  3. 20OpenSSLコマンド知っておくべき例