Foremanは、Red Hat、CentOS、Scientific Linux、Debian、Ubuntuシステムにインストールできる無料のオープンソース構成およびプロビジョニングツールです。 Formanツールを使用すると、仮想マシンとベアメタルサーバーを簡単にプロビジョニングし、PuppetやAnsibleなどの構成ツールを使用してインストール済みシステムを構成できます。 Foremanサーバーをインストールするたびに、Puppetマスターが自動的にインストールされます。
Foreman GUIを使用すると、システム管理者は特定のpuppetモジュールを登録済みサーバーに適用して反復タスクを実行でき、日常の運用タスクを簡単に自動化することもできます。
このチュートリアルでは、Debian9およびUbuntu16.04サーバーへのForeman1.16のインストール手順を説明します。
Foremanサーバーの最小システム要件は次のとおりです。
- 4 GB RAM(Puppet Masterが同じフォアマンサーバーにインストールされている場合)
- 2コアCPU
- 新しくインストールされたDebian9/ Ubuntu 16.04
その下は、フォアマンサーバーのラボセットアップの詳細です
- ForemanServerのIPアドレスは「192.168.1.20」です
- フォアマンサーバーのホスト名「foreman.linuxtechi.com」
- PuppetMaster5はForemanサーバーにインストールされます
- OS:Debian 9 / Ubuntu16.04LTSサーバー
Debian 9 / Ubuntu16.04LTSシステムにログインしましょう
ステップ:1)ホスト名を構成し、hostsファイルのエントリを更新します
systemctlコマンドを使用して、システムのホスト名を構成します。
$ sudo hostnamectl set-hostname "foreman.linuxtechi.com" $ exec bash
/ etc/hostsファイルのシステムホスト名エントリを更新します。
192.168.1.20 foreman.linuxtechi.com foreman
ステップ:2)Foreman&Puppetに必要なリポジトリを有効にする
Debian 9システムの場合:
以下のコマンドを使用してPuppet5リポジトリを有効にします
[email protected]:~$ sudo apt-get -y install ca-certificates [email protected]:~$ wget https://apt.puppetlabs.com/puppet5-release-stretch.deb [email protected]:~$ sudo dpkg -i puppet5-release-stretch.deb
以下のコマンドを使用してForeman1.16リポジトリを有効にします
[email protected]:~$ echo "deb http://deb.theforeman.org/ stretch 1.16" | sudo tee /etc/apt/sources.list.d/foreman.list [email protected]:~$ echo "deb http://deb.theforeman.org/ plugins 1.16" | sudo tee -a /etc/apt/sources.list.d/foreman.list li[email protected]:~$ wget -q https://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add - OK [email protected]:~$
Ubuntu16.04LTSシステムの場合
Puppet5リポジトリを有効にする
[email protected]:~$ sudo apt-get -y install ca-certificates [email protected]:~$ wget https://apt.puppetlabs.com/puppet5-release-xenial.deb [email protected]:~$ sudo dpkg -i puppet5-release-xenial.deb
Foreman1.16リポジトリを有効にする
[email protected]:~$ echo "deb http://deb.theforeman.org/ xenial 1.16" | sudo tee /etc/apt/sources.list.d/foreman.list [email protected]:~$ echo "deb http://deb.theforeman.org/ plugins 1.16" | sudo tee -a /etc/apt/sources.list.d/foreman.list [email protected]:~$ wget -q https://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add - OK [email protected]:~$
手順:3)apt-getコマンドを使用して「foreman-installer」をダウンロードします
以下のコマンドを実行して、foreman-installerをインストールします
[email protected]:~$ sudo apt-get update && sudo apt-get -y install foreman-installer
Foreman-installerは、フォアマンのインストールツールです。
手順:4)「foreman-installer」を使用してForemanをインストールします
foreman-installerコマンドを実行してforemanサーバーをインストールします。デフォルトでは、foremaninstallerは次のコンポーネントをインストールして構成します。
- Foreman Web UI(SSLを使用したApache HTTP)
- スマートプロキシ
- パペットマスター
- 人形エージェント
- TFTPサーバー
[email protected]:~$ sudo foreman-installer --foreman-admin-username admin --foreman-admin-password "[email protected]#"
インストールが正常に完了すると、次のような出力が表示されます。
OSファイアウォールが有効になっていて、システムで実行されている場合は、フォアマンサーバー用に次のポートを開きます
[email protected]:~$ sudo ufw allow 53/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 67:69/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 80/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 443/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 3000/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 3306/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 5910:5930/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 5432/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 8140/tcp Rule added Rule added (v6) [email protected]:~$ sudo ufw allow 8443/tcp Rule added Rule added (v6) [email protected]:~$
注: 私の場合、フォアマンのインストール中に、「SQLの実行中にエラーが発生しました。 psqlがpid32532exit 1を返しました:「エラー:無効なロケール名:「en_US.utf8」。次のコマンドを実行してこのエラーを解決しました:
[email protected]:~$ sudo dpkg-reconfigure locales
「en_US.UTF-8UTF-8」を選択します 」をクリックし、[OK]を選択してマシンを再起動し、foreman-installerコマンドを再実行します。
ステップ:5)ForemanWebUIにアクセスする
次のURLを使用してForemanWebUIにアクセスできます。
https:// {Foreman_Server_IP}
または
https:// {Hostname_Foreman_Server}
ユーザー名を「admin」として使用し、foreman-installerコマンドで指定したパスワードを使用します
ホストに移動します タブ–>「すべてのホスト」をクリックします 」
現在のところ、登録されているホストは1つだけです。つまり、フォアマンサーバーです。フォアマンに新しいサーバーを登録するたびに、それらのサーバーがここに一覧表示されます。これとは別に、実稼働環境もデフォルトで作成され、すべてのサーバーがデフォルトの環境に登録されます。 Foreman UIから、組織に適した環境を作成できます。
ForemanサーバーにNTPpuppetモジュールをダウンロードしてインポートする
以下のコマンドを使用して、「forge.puppet.com」からntppuppetモジュールをダウンロードします
[email protected]:~$ sudo su - [email protected]:~# puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/modules/
以下のような出力が得られます:
インストールされたNTPモジュールをフォアマンダッシュボードにインポートします
ダッシュボードから構成に移動します タブ–>人形を選択します –>クラス 、[インポート]をクリックします
このモジュールをアタッチする環境を選択します。私の場合は、本番環境と開発にアタッチします。
[更新]をクリックします
次のウィンドウが次のように表示されます:
CentOS 7ホストをフォアマンダッシュボードに登録してから、ntpモジュールを接続します。
CentOS7サーバーの登録
システムにログインし、puppetlabs yumリポジトリを有効にしてから、puppetパッケージをインストールします
[[email protected] ~]# yum install https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm -y [[email protected] ~]# yum install puppet -y
注: DNSサーバーがない場合は、hostsファイルにエントリを追加します。私の場合は、/ etc/hostsファイルに次の行を追加しました
192.168.1.20 foreman.linuxtechi.com 192.168.1.2 mx2.linuxtechi.com
CentOS 7サーバーから以下のコマンドを実行して、このマシンをpuppet master&foremanダッシュボードに登録します。
[[email protected] ~]# /opt/puppetlabs/bin/puppet agent -td --server=foreman.linuxtechi.com
次のようなコマンドの出力が表示されます。
…………………………………………………… Debug: Finishing transaction 22347940 Info: Creating a new SSL key for mx2.linuxtechi.com Info: Caching certificate for ca Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml Info: Creating a new SSL certificate request for mx2.linuxtechi.com Info: Certificate Request fingerprint (SHA256): A4:D3:15:0D:8D:10:48:93:96:1D:E4:61:5F:F7:F6:B4:CB:C2:01:F4:4C:02:99:37:03:2C:9E:24:0E:30:CF:CC Debug: Using cached certificate for ca Info: Caching certificate for ca Debug: Using cached certificate_request for mx2.linuxtechi.com Debug: Using cached certificate for ca Debug: Using cached certificate for ca Exiting; no certificate found and waitforcert is disabled [[email protected] ~]#
これは、フォアマンマシンからCentOS7サーバーの証明書に手動で署名する必要があることを意味します。フォアマンダッシュボードから証明書に署名するには、以下の手順を参照してください
インフラストラクチャから タブ–>スマートプロキシを選択します 次に、編集をクリックします オプションを選択し、「証明書」を選択します 」
次に、状態が保留中のマシンの証明書に署名します。例を以下に示します。
サインをクリックしてください
自動署名を構成するには、以下の手順を参照してください
インフラストラクチャから タブ–>スマートプロキシを選択します 次に、編集をクリックします オプションを選択し、「自動署名」を選択します 」
自動署名エントリを作成し、フォアマンが証明書に自動署名するドメイン名を指定します
保存をクリックします 。次回、ドメイン「linuxtechi.com」のサーバーがForemanサーバーに登録されると、自動的に署名されます。
ここでもう一度CentOS7サーバーに移動し、puppet agentコマンドを再実行します。今回は、コマンドが正常に実行されるはずです。
[[email protected] ~]# /opt/puppetlabs/bin/puppet agent -td --server=foreman.linuxtechi.com
ダッシュボードから、ホストからホストを確認します タブ–>「すべてのホスト」を選択します 「そこで、新しく登録されたホスト(CentOS 7サーバー)
NTPモジュールを新しく登録したサーバー(mx2.linuxtechi.com)に接続し、ホストを選択して編集をクリックします。 、次に「人形教室」に移動します ”タブ
「+」をクリックします ntpの前にサインインしてモジュールを追加し、[送信]をクリックします ‘
CentOS7サーバーに移動し、puppet agentコマンドを再実行します。今回は、CentOS7サーバーでntpを構成します。
[[email protected] puppet]# /opt/puppetlabs/bin/puppet agent -td --server=foreman.linuxtechi.com
上記のコマンドの出力は次のようになります:
これにより、CentOS7サーバーがフォアマンサーバーを介して正常に登録および構成されたことを確認できます。また、記事も締めくくっています。下のコメントセクションでコメントを共有してください。
詳細については、「ForemanServerを介したベアメタルと仮想マシンのプロビジョニング」をご覧ください。 「