Ansible 使いやすさと柔軟性により、アプリケーションの展開と開発者間のソフトウェアプロビジョニングの頼れるプラットフォームになりつつあります。さらに、セットアップが簡単で、リモートノードにエージェントをインストールする必要はありません。代わりに、AnsibleはパスワードなしのSSH認証を使用してリモートUnix/Linuxホストを管理します。ただし、このトピックでは、Ansibleを使用してWindowsホストを管理する方法を説明します。
ラボのセットアップ
目的を達成するために、以下の設定を使用します
- Ansible Controlノード– CentOS 8 – IP:192.168.43.13
- Windows 10ノード– Windows 10 – IP:192.168.43.147
パート1:コントロールノード(CentOS 8)へのAnsibleのインストール
何よりもまず、CentOS8システムであるコントロールノードにAnsibleをインストールする必要があります。
ステップ1:Python3がAnsibleコントロールノードにインストールされていることを確認します
まず、Python3がインストールされているかどうかを確認する必要があります。 CentOS 8はPython3に同梱されていますが、何らかの理由で見つからない場合は、次のコマンドを使用してインストールしてください:
# sudo dnf install python3
次に、次のコマンドを実行して、Python3をデフォルトのPythonバージョンにします。
# sudo alternatives --set python /usr/bin/python3
python3がインストールされているかどうかを確認するには、次のコマンドを実行します。
# python --version
関連項目: CentOS 8 / RHEL 8にAnsible(自動化ツール)をインストールする方法
ステップ2:Ansibleを実行するための仮想環境をインストールする
この演習では、Ansibleを実行およびテストするための分離された環境が推奨されます。これにより、依存関係の問題やパッケージの競合などの問題を回避できます。作成する分離環境は、仮想環境と呼ばれます。
まず、CentOS8への仮想環境のインストールから始めましょう。
# sudo dnf install python3-virtualenv
仮想環境のインストール後、次を実行して仮想ワークスペースを作成します。
# virtualenv env
# source env/bin/activate
素晴らしい!プロンプトが(env)に変更されたことを確認します。
ステップ3:Ansibleをインストールする
仮想環境の作成後、次のようにpipを使用してAnsible自動化ツールをインストールします。
# pip install ansible
後でコマンドを使用してAnsibleのインストールを確認できます:
# ansible --version
Ansibleをテストし、Ansible Controlサーバーで動作するかどうかを確認するには:
# ansible localhost -m ping
素晴らしい!次に、AnsibleコントロールノードのホストファイルでWindowsホストまたはシステムを定義する必要があります。したがって、デフォルトのhostsファイルを開きます
# vim /etc/ansible/hosts
以下に示すようにWindowsホストを定義します。
注: ユーザー名とパスワードは、Windowsホストシステム上のユーザーを指します。
次に、構成ファイルを保存して終了します。
ステップ4:Pywinrmをインストールする
AnsibleがSSHを使用してリモートホストと通信するUnixシステムとは異なり、Windowsではまったく別の話です。 Windowsホストと通信するには、Winrmをインストールする必要があります。
winrmをインストールするには、もう一度、次のようにpipツールを使用します。
# pip install pywinrm
パート2:Windowsホストの構成
このセクションでは、AnsibleControlノードに接続するようにWindows10リモートホストシステムを構成します。 WinRMリスナー-をインストールします Windows Remoteの略 –これにより、WindowsホストシステムとAnsibleサーバー間の接続が可能になります。
ただし、その前に、Windowsホストシステムがインストールを成功させるためのいくつかの要件を満たす必要があります。
- WindowsホストシステムはWindows7以降である必要があります 。サーバーの場合は、 Windows Server 2008を使用していることを確認してください 以降のバージョン。
- システムが.NETFramework 4.0を実行していることを確認します 以降。
- Windows PowerShell バージョン3.0以降である必要があります
すべての要件が満たされたら、次に以下に規定されている手順に従います。
ステップ1:Windows10ホストにWinRMスクリプトをダウンロードする
WinRMは、このリンクからダウンロードできるスクリプトを使用してインストールできます。スクリプト全体をコピーして、メモ帳エディターに貼り付けます。その後、WinRMスクリプトを最も便利な場所に保存してください。この例では、ファイルをConfigureRemotingForAnsible.ps1
という名前でデスクトップに保存しました。ステップ2:Windows10ホストでWinRMスクリプトを実行する
次に、PowerShellを管理者として実行します
スクリプトの場所に移動して実行します。この場合、スクリプトを保存したデスクトップの場所に移動しました。次に、続行して、WindowsホストでWinRMスクリプトを実行します。
.\ConfigureRemotingForAnsible.ps1
これには約1分かかり、次のような出力が得られるはずです。出力は、WinRMが正常にインストールされたことを示しています。
パート3:AnsibleコントロールノードからWindowsホストに接続する
Windows 10ホストへの接続をテストするには、次のコマンドを実行します。
# ansible winhost -m win_ping
出力は、AnsibleControlノードからリモートのWindows10ホストへの接続を実際に確立したことを示しています。これは、AnsiblePlaybooksを使用してリモートWindowsホストを管理できるようになったことを意味します。 Windowsホストシステムのサンプルプレイブックを作成しましょう。
パート4:Windows10ホスト用のプレイブックの作成と実行
この最後のセクションでは、プレイブックを作成し、リモートホストにChocolateyをインストールするタスクを作成します。 Chocolateyは、Windowsシステムのパッケージマネージャーです。プレイは次のように定義されています:
# vim chocolatey.yml --- - hosts: winhost gather_facts: no tasks: - name: Install Chocolatey on Windows10 win_chocolatey: name=procexp state=present
ymlファイルを保存して閉じます。次に、図のようにプレイブックを実行します
# ansible-playbook chocolatey.yml
出力は、すべてうまくいったポインターです。これで、Ansibleを使用してWindowsホストを管理する方法に関するこのトピックは終わりです。
また読む : Ansibleロールを作成し、Playbookで使用する方法