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

Ubuntu20.04でPuppetモジュールを使用してLAMPスタックを作成する方法

Puppetは、サーバーにリモートアクセスしながら、サーバーの展開、構成、管理、および保守に使用できる強力なオープンソース構成管理ツールです。 PuppetはRubyで記述されており、単一のサーバー(最大数千の物理サーバーと仮想サーバー)をすべて中央の場所から展開および管理するのに役立ちます。

Puppetモジュールは、マニフェストファイルとデータのコレクションであり、Puppetがクラス、ファクト、関数、定義されたタイプ、およびタスクをロードして検索できるようにします。 Puppetモジュールを使用すると、パッケージのインストールと更新、ファイルとディレクトリの作成、および/または構成の変更をすばやく簡単に行うことができます。これは、LAMP環境の起動、仮想ホストのセットアップなど、ほぼすべてのタスクを実行および自動化することを目的としています。

このチュートリアルでは、LAMPモジュールを作成してLAMPスタックをPuppetエージェントマシンにデプロイする方法を示します。どちらもUbuntu20.04VPSです。始めましょう。

始める前に

必要なもの:

  • PuppetマスターとPuppetエージェントが構成された2台のUbuntu20.04仮想サーバー。
  • ルートアクセスが有効になっているか、sudo権限を持つユーザー。

はじめに

まず、SSHを使用してサーバーにログインする必要があります。これを行うには、次のコマンドを入力します:

ssh root@IP_Address -p Port_Number

rootユーザーを使用していない場合は、「root」をユーザー名に置き換えることを忘れないでください。サーバーのIPアドレスとSSHポート番号に応じて、「IP_Address」と「Port_Number」を変更します。デフォルトのポート番号は22です。

ログインすると、次のステップに進むことができます。

Puppetサーバーとエージェントを確認する

まず、Puppetマスターノードで次のコマンドを実行して、Puppetサービスを確認します。サービスがアクティブで実行されていることを確認する必要があります:

systemctl status puppetserver

次に、次のコマンドを使用して、署名済みおよび署名なしのすべてのエージェント要求を一覧表示します。

/opt/puppetlabs/bin/puppetserver ca list --all

次の出力が表示されます。

Signed Certificates:
    puppet-client       (SHA256)  58:73:AE:62:04:9E:B8:0F:16:07:83:08:34:4A:00:D2:E6:82:9B:47:2A:00:9F:F4:08:AE:56:A8:E7:1B:6A:31
    puppet-master       (SHA256)  7F:23:98:18:0E:3F:0F:FD:3E:12:FD:43:A6:50:C2:4C:58:0F:C6:EB:B0:5A:2A:74:6F:D8:A0:95:BC:31:EA:47alt names: ["DNS:puppet-master", "DNS:puppet-master"]authorization extensions: [pp_cli_auth: true]

Puppetエージェントノードで、次のコマンドを実行して、両方のノード間の接続をテストします。

/opt/puppetlabs/bin/puppet agent --test

すべてが正常であれば、次の出力が得られるはずです:

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for puppet-client
Info: Applying configuration version '1583136740'
Notice: Applied catalog in 0.05 seconds

LAMPモジュールを作成する

まず、PuppetマスターノードにLAMPモジュールを作成する必要があります。モジュールを作成するには、Puppetのmodulesでモジュール名と名前が一致するディレクトリを作成する必要があります ディレクトリ。manifestsというディレクトリが含まれている必要があります。 、およびそのディレクトリにはinit.ppが含まれている必要があります ファイル。

これを行うには、ディレクトリをPuppetモジュールディレクトリに変更し、lampという名前のディレクトリを作成します。 次に、manifests その中のディレクトリ:

cd /etc/puppetlabs/code/modules/
mkdir -p lamp/manifests

次に、init.ppを作成します モジュール名と一致するPuppetクラスを含むファイル。 nanoを使用します このためですが、好きなテキストエディタを使用できます。

nano lamp/manifests/init.pp

次の行を追加します:

class lamp {
  # execute 'apt-get update'
  exec { 'apt-update':                    # exec resource named 'apt-update'
    command => '/usr/bin/apt-get update'  # command this resource will run
  }

  # install apache2 package
  package { 'apache2':
    require => Exec['apt-update'],        # require 'apt-update' before installing
    ensure => installed,
  }

  # ensure apache2 service is running
  service { 'apache2':
    ensure => running,
  }

  # install mysql-server package
  package { 'mysql-server':
    require => Exec['apt-update'],        # require 'apt-update' before installing
    ensure => installed,
  }

  # ensure mysql service is running
  service { 'mysql':
    ensure => running,
  }

  # install php package
  package { 'php':
    require => Exec['apt-update'],        # require 'apt-update' before installing
    ensure => installed,
  }
  # ensure info.php file exists
  file { '/var/www/html/info.php':
    ensure => file,
    content => '',    # phpinfo code
    require => Package['apache2'],        # require 'apache2' package before creating
  }
}

終了したら、ファイルを保存して閉じます。

メインマニフェストファイルを作成する

マニフェストは、エージェントノードにLAMPスタックをインストールするために使用できるクライアント構成を含むファイルです。メインのパペットマニフェストファイルは、/etc/puppetlabs/code/environments/production/manifestsにあります。 ディレクトリ。

site.ppという名前の新しいマニフェストファイルを作成できます 次のコマンドを使用します:

nano /etc/puppetlabs/code/environments/production/manifests/site.pp

次の行を追加します:

node default { }

node 'puppet-agent' {
  include lamp
}

ファイルを保存して閉じます。

上記のファイルでは、ノードブロックを使用して、特定のエージェントノードにのみ適用されるPuppetコードを指定できます。デフォルトノードは、ノードブロックが指定されていないすべてのエージェントノードに適用されます。

ここでは、puppet-agentを指定しました puppet-agentにのみ適用されるノードブロック エージェントノード。 include lampも追加しました Puppetがエージェントノードのランプモジュールを使用できるようにするためのスニペット。

LAMPモジュールをテストする

次に、エージェントノードのLAMP構成をマスターノードからプルする必要があります。

エージェントノードで、次のコマンドを実行して、マスターノードからLAMP構成をプルします。

/opt/puppetlabs/bin/puppet agent --test

これにより、以下に示すように、エージェントノードにLAMPスタックがインストールおよびセットアップされます。

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for puppet-agent
Info: Applying configuration version '1594188800'
Notice: /Stage[main]/Lamp/Exec[apt-update]/returns: executed successfully
Notice: /Stage[main]/Lamp/Package[apache2]/ensure: created
Notice: /Stage[main]/Lamp/Package[mysql-server]/ensure: created
Notice: /Stage[main]/Lamp/Package[php]/ensure: created
Notice: /Stage[main]/Lamp/File[/var/www/html/info.php]/ensure: defined content as '{md5}d9c0c977ee96604e48b81d795236619a'
Notice: Applied catalog in 73.09 seconds

これで、LAMPスタックがエージェントノードにインストールされました。確認するには、Webブラウザを開き、URL http://agent-ip-address/info.phpを入力します。 。 PHPページが表示されます。

おめでとう! PuppetマスターでLAMPモジュールを正常に作成し、Puppetを使用してエージェントノード(または複数のノード)に正常にデプロイしました。

これらの変更をエージェントノードにデプロイすることは、可能な限り簡単かつ自動化されていますが、それでも両方の側を構成し、これらのタスクを自分で実行する必要があります。マネージドUbuntuVPSプランのいずれかを使用する場合は、専門の管理チームに必要なものをインストールするよう依頼するだけです。彼らは、必要なときにいつでも必要なものをインストールしてセットアップしたり、サーバーのメンテナンスを実行したりすることができます。すべて、何もする必要はありません。

このチュートリアルがお役に立てば幸いです。もしそうなら、私たちの共有ショートカットを使用してソーシャルメディアを介してこのチュートリアルを友達と共有していただければ幸いです。または、インストールがどのように進んだかをコメントで残すことができます。ありがとうございます。


Panels
  1. Ubuntu22.04LTSにLAMPスタックをインストールする方法

  2. Ubuntu18.04にLAMPスタックを使用してWordPressをインストールする方法

  3. Ubuntu20.04にEPrintsをインストールする方法

  1. Ubuntu16.04にLAMPスタックを使用してWordPressをインストールする方法

  2. Ubuntu18.04にLAMPをインストールする方法

  3. Ubuntu20.04にLAMPスタックを使用してWordPressをインストールする方法

  1. Ubuntu18.04にLAMPスタックをインストールする方法

  2. Ubuntu20.04でdockerを使用してdockerベースのLAMPスタックを作成する方法

  3. LAMPスタックを使用してUbuntu18.04にWordPressをインストールする方法