ステータス:非推奨

この記事では、サポートされなくなったバージョンの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のバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

序章


このチュートリアルは、Ubuntu12.04にSaltをインストールする方法に基づいています| DigitalOcean は、操作可能なSaltCloudマスターサーバーの簡素化された基本的なセットアップを読者に提供することを目的としています。 DigitalOceanユーザーは、この採用を使用して、1、2、または一連のクラウドサーバーを作成するプロセスを自動化できます。

トータルインフラストラクチャ管理


Salt Stackは、オープンソースのクラウド展開、構成管理、リモート実行および監視パッケージです。 Salt について聞いたことがないかもしれませんが、PuppetまたはChefについてはご存知かもしれません。 Saltも同様のツールですが、リソースと要件の点で比較的軽量であり、はるかに使いやすいと考えるユーザーが増えています。 Salt、Puppet、Chefなどのツールを使用すると、一度に複数のマシンでコマンドを発行したり、ソフトウェアをインストールして構成したりできます。 Saltには、(i)構成管理と(ii)リモート実行という2つの主要な側面があります。 クラウドの展開はSaltCloudに任されています。

Salt Cloudは、パブリッククラウドサーバーの展開を自動化するように設計されたパブリッククラウドプロビジョニングツールです。 SaltをDigitalOceanと統合しますアプリケーションプログラミングインターフェイス(API) クリーンな方法で–そして(i)作成します。 (ii)規定および(iii)液滴の管理(すなわち クラウドまたは仮想プライベートサーバー)仮想マシンマップおよびプロファイルを介して。 DigitalOceanドロップレットは、個別に作成することも、大きなグループで作成することもでき、ログインしなくてもプロビジョニングして完全に管理できます。 単一の仮想マシンのデプロイから、クラウド全体のマッピングとプロビジョニングまで、SaltCloudは必要に応じてスケーラブルです。

前提条件


まず、Ubuntu12.04にSaltをインストールする方法を参照してください| DigitalOcean を使用して、VPSにSaltマスター/ミニオンを作成します。

セキュリティ強化

パブリックインターネットからアクセスできるサーバーはすべてセキュリティを強化する必要があり、Saltマスターも例外ではありません。

  • Ubuntu 12.04を使用した初期サーバーセットアップのステップ5で説明されているように、SSHポートをデフォルトのポート22から1024未満のランダムポートに変更します。

ソルトマスターは、AES暗号化されたZeroMQ接続を使用してミニオンと通信します。 これらの通信は、マスターのみでアクセス可能である必要があるTCPポート4505および4506を介して行われます。

  • 構成するファイアウォール必ず開いてくださいカスタムSSHポート TCPポート4505および4506 ;

Ubuntuのデフォルトのファイアウォール構成ツールはufwです。 ソルトポートを開くには、次のコマンドを実行するだけです。

		sudo ufw allow [custom SSH port below 1024]/tcp
		sudo ufw allow salt
		sudo ufw enable
		sudo ufw status verbose

またパスワードログインを無効にするまたはデプロイ Fail2ban DenyHosts

DigitalOceanコントロールパネル用のSSHキーペアの作成

Salt Cloudは、公開鍵暗号化を使用して、SaltマスターとDigitalOcean間の通信を保護します。 したがって、SSHキーを保存するディレクトリをマスターに作成します。

sudo mkdir /keys

次に、以下を実行します。

sudo ssh-keygen -t rsa

システムはキーを保存するファイルを入力してください(/root/.ssh/id_rsa):で応答します。 コピーアンドペースト:

/keys/digital-ocean-salt-cloud

キーボードの「Enter」を押します。 パスフレーズの入力(パスフレーズがない場合は空):が表示され、オプションのパスワードの入力を求められます。 パスフレーズを入力しないでください。 代わりに、「Enter」キーを2回タップします。

新しい公開(SSH)キーは、「keys/digital-ocean-salt-cloud.pub」にあります。 最後に、以下を実行します。

cat /keys/digital-ocean-salt-cloud.pub

DigitalOceanドロップレットでSSHキーを使用する方法のステップ3で概説されているように、公開鍵をコピーしてDigitalOceanコントロールパネルに貼り付けます(コントロールパネルで公開鍵の名前をデジタルとして保存します- ocean-salt-cloud.pub )。

ホスト名と完全修飾ドメイン名(FQDN)


ソルトマスターのホスト名とFQDNが正しく設定されていることを確認します。 参照Ubuntu 12.04 でのホスト名と完全修飾ドメイン名(FQDN)の設定。

インストールツールを入手する


SaltStackはPythonプログラミング言語で構築されています。 そのため、 pip (Pythonで記述されたソフトウェアパッケージのインストールと管理に使用されるパッケージ管理システム)が必要になります。 さらに、Pythonのリポジトリから入手できますが、SaltStackのGitHubリポジトリからSaltCloudパッケージをダウンロードします。

システムにpipgitをインストールするには、次のコマンドを実行します。

sudo apt-get -y install python-pip git

SaltCloudの依存関係をインストールする


まず、以下を実行します。

sudo apt-get -y install python-m2crypto

次に、以下を実行します。

sudo pip install pyzmq PyYAML pycrypto msgpack-python jinja2 psutil salt

次に、以下を実行します。

sudo pip install apache-libcloud

SaltCloudをインストールする


最後に、以下を実行します。

sudo pip install git+https://github.com/saltstack/salt-cloud.git#egg=salt_cloud

以下を実行して、SaltCloudが正常にインストールされたことを確認します。

salt-cloud --version

SaltCloudを構成する


Salt Cloudは、メインのSaltプロジェクトと同様のモジュールシステムで実行されます。 また、デフォルトでは、テンプレートファイルにPyYAML構文を使用しますが、他の多くのテンプレート言語も使用できます。 構成ファイルを作成するときは、タブの代わりに2つのスペースを使用するYAMLの適切なフォーマット手法に必ず従ってください。

オンラインYAMLパーサーは、YAMLファイルの構文の問題をトラブルシューティングするときに使用できます。

私。 コア構成


Salt Cloudのコア構成は、クラウド構成ファイルで処理されます。 このファイルは、システム内のすべてのクラウドプロバイダーに影響を与えるグローバル構成で構成されています。 さらに、クラウドファイルは、作成されたミニオンが構成を取得する場所です。

実行してクラウド構成ファイルを作成します(もちろん、任意のテキストエディターを使用できますが、このガイドでは、 vimテキストエディターがインストールされていることを前提としています)。

sudo vim /etc/salt/cloud

キーボードで、 iキーをタップします。 矢印キーを使用してテキスト領域をナビゲートします。 クラウドファイルをコピーして貼り付けるか、以下の例のように作成します( master.yourdomain.tldをSaltマスターのFQDNに置き換えます)。

provider: do
# Set the location of the Salt master
minion:
  master: master.yourdomain.tld

保存して終了するには、キーボードの Esc キーをタップしてから、次のキーストロークを押します。1):2)w 3)q 4)Enterキーを押します。

さらにカスタマイズするために、コア構成ファイルで渡すことができる追加のその他のオプションを利用できます。

クラウドプロバイダーモジュール


次に、2つの新しいディレクトリを作成します。

sudo mkdir /etc/salt/{cloud.profiles.d,cloud.providers.d}

これらの新しいディレクトリは、DigitalOcean固有のYAML構成ファイルを保持します。

II。 DigitalOceanクラウドプロバイダーの構成


DigitalOcean クラウドプロバイダー構成は、DigitalOceanアカウントへのアクセスを制御するために使用されます。 次のコマンドを実行して、DigitalOceanクラウドプロバイダー構成ファイルを作成します。

sudo vim /etc/salt/cloud.providers.d/digital_ocean.conf

iキーをタップします。 キーボードの矢印キーを使用して、テキスト領域をナビゲートします。 コピー&ペーストまたは作成 digital_ocean.conf 以下の例のようにファイルします。

do:
  provider: digital_ocean
  # Digital Ocean account keys
  client_key: YourClientIDCopiedFromControlPanel
  api_key: YourAPIKeyCopiedFromControlPanel
  ssh_key_name: digital-ocean-salt-cloud.pub
  # Directory & file name on your Salt master
  ssh_key_file: /keys/digital-ocean-salt-cloud

保存して終了するには、キーボードの Esc キーをタップしてから、次のキーストロークを押します。1):2)w 3)q 4)Enterキーを押します。

DigitalOcean API


DigitalOceanでSaltCloudを使用するには、client_keyapi_keyが必要です。 これらは、DigitalOceanコントロールパネルの[APIアクセス]タブにあります。

次に、 DigitalOcean APIの使用方法で概説されている手順に従って、アカウントのAPIキーを作成します。 DigitalOceanクライアントIDAPIキーの両方をコピーして、上記のクラウドプロバイダー構成ファイルに貼り付ける必要があります。

APIとの相互作用


/etc/salt/cloud.providers.d/digital_ocean.conf でDigitalOceanプロバイダーを構成すると、次のコマンドにアクセスできるようになります。

sudo salt-cloud --list-images do
sudo salt-cloud --list-sizes do
sudo salt-cloud --list-locations do
sudo salt-cloud --help

これらのコマンドからの出力は、仮想サーバープロファイルを構築するために必要な変数を提供するため、重要です。

III。 DigitalOceanクラウドプロファイル


次の手順を実行して、サーバーフリートのDigitalOceanクラウドプロファイルを作成します。

sudo vim /etc/salt/cloud.profiles.d/digital_ocean.conf

次に、キーボードでiキーをタップします。 矢印キーを使用してテキスト領域をナビゲートします。 コピー&ペーストまたは作成digital_ocean.conf以下の例のようにファイルします。

# Official distro images available for Arch, CentOS, Debian, Fedora, Ubuntu

ubuntu_512MB_ny2:
  provider: do
  image: Ubuntu 12.04.4 x64
  size: 512MB
#  script: Optional Deploy Script Argument
  location: New York 2
  private_networking: True

ubuntu_1GB_ny2:
  provider: do
  image: Ubuntu 12.04.4 x64
  size: 1GB
#  script: Optional Deploy Script Argument
  location: New York 2
  private_networking: True

ubuntu_2GB_ny2:
  provider: do
  image: Ubuntu 12.04.4 x64
  size: 2GB
#  script: Optional Deploy Script Argument
  location: New York 2
  private_networking: True

# Create additional profiles, if you wish
#[profile_alias_of_your_choosing]:
#  provider: do
#  image: [from salt-cloud --list-images do]
#  size: [from salt-cloud --list-sizes do]
#  script: [optional deployment script e.g. Ubuntu, Fedora, python-bootstrap, etc.]
#  location: [from salt-cloud --list-locations do]
#  private_networking: [True or False: currently only available in NY2 region]

保存して終了するには、キーボードの Esc キーをタップしてから、次のキーストロークを押します。1):2)w 3)q 4)Enterキーを押します。

提供されている例に加えて、Salt Cloudは複数の構成ファイルに対応できます。これにより、より拡張可能な構成が可能になり、さまざまな構成管理ツールやバージョン管理システムとうまく連携します。

クラウドVMのOSサポート


Salt Cloudは主に、新しくプロビジョニングされたドロップレットが利用可能になり次第、スクリプトを実行することで機能します。 クラウドプロファイルで別のデプロイスクリプトが宣言されていない限り、デフォルトで使用されるスクリプトは salt-bootstrapscriptです。 現在推奨されている方法(Salt Cloud v0.8.9以降)は、デフォルトのsalt-bootstrapスクリプトを使用することです。 salt-bootstrapスクリプトがニーズを満たさない場合は、 Deploy ScriptArgumentsを渡すか独自のを記述してください。

高度なトピック


VPSを作成する際には、この記事の範囲を超えるいくつかのオプションがあります。 このチュートリアルで概説されている基本原則に慣れたら、マップファイルを使用してより複雑なセットアップを作成する方法を学びたいと思うかもしれません。 マップファイルを使用すると、多数の仮想マシンを作成して特定のプロファイルに関連付けることができます。

新しいクラウドサーバーをプロビジョニングします!


新しいクラウドサーバーを作成するには、次のコマンドを実行します( hostname を任意のホスト名に置き換えます)。

sudo salt-cloud --profile ubuntu_512MB_ny2 hostname

すべてがうまくいけば、Salt minionでブートストラップされた新しくプロビジョニングされたサーバーが必要です(新しいminionのSSHキーはSaltマスターに自動的に追加されます)。 同じプロファイルから複数の仮想マシンをプロビジョニングする場合は、1つのコマンドでプロビジョニングできます。

sudo salt-cloud -p ubuntu_1GB_ny2 hostname1 hostname2 hostname3

–profile-p は交換可能であることに注意してください。)

ミニオン構成


クラウドサーバーの新しいフリートを構成するには、以下を参照してください。最初のソルトフォーミュラを作成する方法| DigitalOcean

ミニオンを破壊する


SaltCloudコマンドを実行するときに渡すことができるさまざまなオプションがあります。 たとえば、特定のミニオンを破壊するには、次のコマンドを実行するだけです。

sudo salt-cloud -d hostname

追加リソース


いつものように、このハウツーで概説されている手順についてサポートが必要な場合は、以下の質問を提起して、DigitalOceanコミュニティに支援を求めてください。

投稿者: https ://plus.google.com/107285164064863645881?rel = author