最初のソルトフォーミュラを作成する方法

提供:Dev Guides
移動先:案内検索

ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由: Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。


[[“%3Ca|http://saltstack.com]]のメーカーからの記事 [[“%3C/a|”> saltStack]] 、投稿者:Dave Boucha

序章

Saltは、すばらしい100% oペンソース構成管理およびリモート実行ツールです。 Saltは、インフラストラクチャ管理への新しいアプローチです。 数分で実行できるほど簡単で、数万台のサーバーを管理できるほどスケーラブルで、数秒でサーバーと通信できるほど高速です。

SaltStack は、Saltの背後にある素晴らしくオープンな会社です。 すべてのSaltコードと機能はApache2.0ライセンスの下でリリースされており、https://github.com/saltstack/saltおよびお好みのOSのパッケージマネージャーからダウンロードできます。

この記事では、次のことを実行します。

  • 次のソフトウェアを使用してサーバーを構成する最初のSaltFormulaを作成します


この記事では、次のことを前提としています。

  • 前のチュートリアルUbuntu12.04へのSaltのインストールはすでに完了しています。
  • すでにデフォルトのrootユーザーとしてログインしています
  • サーバーの名前は「minion01」であると想定します。 'minion01'が表示されているコマンドでは、salt-key -Lにあるサーバーの名前に置き換えてください。
  • それでおしまい!

Saltのインストールに関する最初の記事では、Nginxをインストールするコマンドなど、いくつかの簡単なコマンドを実行しました。 これはアドホックコマンドを実行するための優れた方法ですが、インフラストラクチャをこのように継続的に構成することは実際には望ましくありません。 ソルトフォーミュラのセットを作成することにより、あらゆる構成を何度も確実に再現できます。 Salt Formulasは、サーバーにインストールされているものの優れたドキュメントにもなります。 そのクローゼットに5年間置かれている古いサーバーに何があるのか、もう不思議に思うことはありません。

Salt Formulasは単純なyamlテキストファイルであり、デフォルトでは/srv/salt/のSaltマスターに存在します

Vimがインストールされていることを確認するために、ソルトフォーミュラを作成することから始めましょう。

vi /srv/salt/vim.sls

次のテキストをvim.slsに追加します。

vim:
  pkg:
    - installed

何が起きてる? 各行について説明します。

最初の行はID宣言と呼ばれます。 基本的に、このスタンザの「ラベル」。 パッケージ名にはvimを使用します。 ここで使用する名前は、パッケージマネージャーが使用する実際のパッケージ名と一致している必要があります。 たとえば、Ubuntuの場合は「vim」、CentOSの場合は「vim-core」。 (実際には、ID宣言は任意のテキストにすることができ、以下で実際のパッケージ名を指定できますが、簡単にするために、今はこの方法で行います)

2行目は状態宣言と呼ばれます。 これは、これから使用する特定のソルトステートを指します。 この例では、「pkg」状態を使用しています。 Saltが提供するすべての状態のリストは、http://docs.saltstack.com/ref/states/all/index.htmlにあります。 独自の状態を簡単に作成することもできます。

3行目は関数宣言と呼ばれます。 これは、実行する状態モジュール内の関数の名前を指します。 この例では、「インストール済み」です。 ここで時制に注意してください。 塩の状態はべき等です。 それらを何度も実行することができ、サーバーがすでに目的の状態に準拠している場合、サーバー上の何も変更されません。

そしてそれがすべてです! これで、次のようにこの状態をサーバーに適用できます。

salt 'minion01' state.sls vim

nanoがシステムから同時に削除されていることを確認したい場合はどうなりますか? vim.slsを次のようにします。

vim:
  pkg:
    - installed

nano:
  pkg:
    - removed

ここにパターンが見えますか?

次の例では、ApacheWebサーバーとPHPを同時にインストールします。 「webserver.sls」という名前のファイルを作成します。

vi /srv/salt/webserver.sls

「webserver.sls」に以下を追加しましょう

webserver_stuff:
  pkg:
    - installed
    - pkgs:
      - apache2
      - php5
      - php5-mysql

この例では、「-pkgs:」引数に注意してください。 「-pkgs:」の下のリストの各項目は、一緒にインストールされるOSのパッケージマネージャーに一緒に渡されます。 これは、「apt」または「yum」への呼び出しが1回だけ発生することを意味します。 インストールするパッケージのリストが大きい場合は、これが最も効率的なインストール方法です。

この場合も、次のようにこの式をサーバーに適用できます。

salt 'minion01' state.sls webserver

さて、これでgitをインストールする最後の例に行き着きました。 私たちがそれをどのように行うのか推測できますか?

vi /srv/salt/git.sls

内容:

git:
  pkg:
    - installed

また、この新しい構成を適用するには、次のようにします。

salt 'minion01' state.sls git

これらの各構成を同時に適用したい場合は、以下を実行できます。

salt 'minion01' state.sls vim,webserver,git

簡単ですね

このチュートリアルの最後の部分では、「ハイステート」の概念を学習します。 「ハイステート」とは、ソルトが特定のミニオンに適用するソルトフォーミュラを動的に決定する方法です。 まず、次のような「ハイステート」を実行します。

salt 'minion01' state.highstate

このコマンドにより、ミニオンは「トップファイル」と呼ばれるソルトマスターからのファイルをダウンロードして調べます。 デフォルトでは、このファイルはソルトマスターの/srv/salt/top.slsにあります。 基本的なトップファイルがどのように見えるかを見てみましょう。

base:
  '*':
    - vim
  'minion*':
    - git
    - webserver
  'minion02':
    - mongodb

この例のtop.slsには、「ベース」環境があります。 今のところ、デフォルトの「ベース」環境だけを使用します。 前述のように、ミニオンがハイステートを実行するように指示されると、ミニオンはマスターにtop.slsを要求し、一致する数式を検索します。 '*'はワイルドカードであり、ALLミニオンがその下の数式のリストを適用する必要があることを意味します。 この場合は「vim」式だけです。 4行目の「ミニオン*」もミニオンと一致します。 つまり、ミニオンは「git」と「webserver」の式を適用します。 私たちのミニオンは「minion02」に対してNOT一致するため、ミニオンは「mongodb」式を適用しようとしません。

この例では、ミニオンのIDまたは名前と標準のグロビングのみが一致していることに気付くでしょう。 また、pcre、IPアドレスとIPアドレスの範囲、グレイン、その他さまざまなもので一致させることができます。 ここに一致する方法のリストを見つけることができます。

結論

サーバーを構成するためにSaltの組み込み状態を利用するいくつかの基本的なSalt式を作成しました。 これは、Saltでできることのほんの始まりにすぎません。

公式のSaltStackウォークスルーは、Saltについてさらに学ぶための優れた方法です。

Saltがインフラストラクチャの管理に役立つすべての方法の詳細については、http://docs.saltstack.comにあるSaltの広範なドキュメントをお読みください。

素晴らしいソルトコミュニティに参加してください! 私たちのメーリングリストはここにあり、IRCチャネルはfreenodeの#saltです。

ソルトの開発はここで行われます: https://github.com/saltstack/salt

お気軽にお立ち寄りください!