坂本  篤司

坂本 篤司

1641263820

Ansibleとは何ですか?

みなさん、こんにちは。今日は、クロスプラットフォームのコンピューターサポートをシンプルで効果的な方法で自動化できる素晴らしいソフトウェアツールであるAnsibleについてお話します。

Ansibleとは何ですか?

Ansibleは、システムインフラストラクチャ全体でITプロフェッショナルの作業を自動化するための書面による指示を生成するツールです。

これは、アプリケーションの展開、構成管理、サービス内オーケストレーション、およびシステム管理者が毎週または毎日行うその他の事実上すべてに使用するITプロフェッショナル向けに特別に設計されています。

Ansibleは、エージェントソフトウェアやその他のセキュリティインフラストラクチャを必要としないため、インストールが簡単です。

Ansibleは自動化、システム管理、DevOpsの最先端にありますが、開発者が日常業務で使用するためのツールとしても価値があります。

Ansibleを使用すると、1台のマシンだけでなく、それらすべての完全なネットワークを一度にセットアップでき、プログラミングの知識は必要ありません。

Ansibleはどのように機能しますか?

Ansibleはネットワーク上のノード(クライアント、サーバーなど)に接続し、Ansibleモジュールと呼ばれる小さなプログラムを各ノードに送信します。

次に、SSHを介してこれらのモジュールを実行し、完了したら削除します。

このインタラクションが機能するには、Ansibleコントロールノードが管理対象ノードへのログインアクセス権を持っている必要があります。

最も頻繁な認証方法はSSHキーですが、別の方法も許可されています。

Ansibleをインストールして使用を開始する方法を知りたい場合は、以下で説明します。

Ansibleのアーキテクチャ

それでは、Ansibleのアーキテクチャとそれがどのように操作を管理するかを見てみましょう。

Ansibleプラグイン

プラグインは機能を強化する補足的なコードであり、おそらく他の多くのツールやプラットフォームでプラグインを使用したことがあります。Ansibleの組み込みプラグインを使用することも、独自のプラグインを作成することもできます。

例は次のとおりです。

  • アクションプラグイン
  • プラグインになる
  • キャッシュプラグイン
  • コールバックプラグイン
  • Cliconfプラグイン
  • 接続プラグイン
  • HTTPAPIプラグイン
  • インベントリプラグイン
  • ルックアッププラグイン
  • Netconfプラグイン
  • テスト

Ansibleモジュール

モジュールは、Ansibleが中央制御ワークステーションからすべてのノードまたはリモートホストに配布する短いプログラムです。モジュールはサービスやパッケージなどを制御し、プレイブックを介して実行できます。

Ansibleは、更新をインストールしたり、必要な操作を完了したりするために必要なすべてのモジュールを実行し、完了後にそれらを削除します。

Ansibleインベントリ

Ansibleは、インベントリファイルを使用して、インフラストラクチャの一部であるホストを追跡し、それらにアクセスしてコマンドとプレイブックを実行します。

Ansibleは、インフラストラクチャ内のさまざまなシステムと並行して機能します。これは、デフォルトでホストの場所に保存されているAnsibleのインベントリファイルに記載されているメソッドを選択することで実現されます。

インベントリが登録されると、単純なテキストファイルを使用して任意のホストに変数を割り当てることができ、さまざまなソースからインベントリを取得できます。

Ansible Playbook

ITプロフェッショナルは、Ansibleプレイブックを使用して、アプリケーション、サービス、サーバーノード、およびその他のデバイスを最初から作成することなくプログラムできます。Ansibleプレイブックは、それらに含まれる条件、変数、およびタスクとともに、保存、共有、および永久に再利用できます。

Ansible Playbookは、タスクマニュアルと同様に機能します。これらは単純なYAMLファイルであり、人間が読める形式のデータシリアル化言語です。

プレイブックは、Ansibleを非常に人気のあるものにする中心的な要素です。これらは、ユーザーが特定の構文を知っているか覚えている必要なしに、迅速に完了することができるアクティビティを指定します。

Ansibleを使用する利点

  • Ansibleは、SSHを介してすべての操作を実行し、エージェントをインストールする必要がないため、すばやく簡単に使用できます。
  • Ansibleは無料のオープンソースツールであり、セットアップと使用が簡単です。Ansibleのプレイブックには、特別なコーディングの知識は必要ありません。
  • Ansibleを使用すると、構成ファイルを必要とせずに、サービスが動作していることを確認したり、コマンドラインから再起動したりするなどの簡単なタスクを実行できます。

より広範囲またはより均一なシステムでは、Ansibleの方が適している場合があります。また、さまざまなメソッドとクラウドインフラストラクチャを管理するための一連のモジュールも提供します。

なぜAnsibleはそれほど重要なのですか?

近代化とデジタルトランスフォーメーションには、必要かつ目的のある自動化が必要です。ITインフラストラクチャ全体の速度、拡張性、および安定性を向上させるために、今日の動的なコンテキストで新しい管理ソリューションが必要です。

テクノロジーは、製品を改善するための最も強力な手段です。以前は、これを達成するには、かなりの量の手作業と複雑な調整が必要でした。しかし今日、Ansible(セットアップを簡素化し、DevOps操作を高速化するために何千もの企業で使用されているシンプルで強力なIT自動化エンジン)が利用可能です。

UbuntuにAnsibleをインストールする方法

次のコマンドを実行して、マシンにPPAを構成し、Ansibleをインストールします。

リポジトリを更新します。

sudo apt-get update

ソフトウェアのプロパティをインストールします。

sudo apt-get install software-properties-common

そして、次のようにAnsibleをインストールします。

sudo apt-add-repository --yes --update ppa:ansible/ansible

次に、これを実行します。

sudo apt-get install ansible

以下に示すようなものが必要です。

ansible_installation

Ansibleが正常にインストールされたので、次のコマンドを使用して、Ansibleが機能しているかどうかをテストしましょう。

ansible --version

ansible_check

以下のコマンドを使用して、インベントリホストlocalhostのすべてのシステムをターゲットにするようにAnsibleに指示し、(sshではなく)ローカルコンソールからモジュールpingを実行します。

ansible all -i localhost, --connection=local -m ping

以下に示すような応答が得られるはずです。

ansible_ping

Ansibleがターゲットとするホストを変更する方法

のホストのファイルに変更を加えます/etc/ansible/hosts。これは、Ansibleが指定されたコマンドをリモートで実行する必要がある定義済みのホスト(およびグループ)を検索するデフォルトのファイルです。

sudo nano /etc/ansible/hosts

以下の行をファイルに追加し、変更を保存します。

[local]
localhost

調整したインベントリファイルを使用して次のコマンドを実行します。

ansible all --connection=local -m ping

応答は、以下のようになります。

ansible_pong

リモートサーバーを構成する方法

Digital Oceanドロップレットを使用して、Ansibleテストプログラムをリモートサーバーにデプロイします。

以下のコマンドを使用して、サーバーにSSH接続します。

ssh username@IP_Address

注:ドロップレットの作成時に選択されたsshキーはプロファイルにすでに構成されています。

ansible_server

リモートサーバー用にAnsibleを構成する方法

以下のコマンドを使用して、/ etc / ansible / hosts内のhostsファイルを編集します。

sudo nano /etc/ansible/hosts

以下の行をファイルに追加し、変更を保存します。

[remote]
remote_test

[remote:vars]
ansible_host=IP_ADDRESS_OF_VIRTUAL_MACHINE
ansible_user=USERNAME

AnsibleがSSH経由でリモートコンピューティングインスタンスに接続できるかどうかを確認するには、次のコマンドを入力してみましょう。

ansible remote -m ping

asnible_result

以下のコマンドを使用してAnsibleプレイブックを作成します。これは、リモートサーバーで実行するコマンドとその順序をAnsibleに指示する一般的な方法です。プレイブックは.ymlで記述されており、厳密な形式に従います。

公式のAnsibleドキュメントでは、プレイブックについて詳しく知ることができます。

nano my-playbook.yml

次のコードを追加します。これは、Ansibleにいくつかの手順でDockerをインストールするように指示します。

---
- name: install docker
hosts: remote
become_method: sudo
become_user: root
vars: #local variables
docker_packages:
- apt-transport-https
- ca-certificates
- curl
- software-properties-common

tasks:
- name: Update apt packages
become: true #make sure you execute the task with sudo privileges
apt: #use apt module
update_cache: yes #equivalent of apt-get update

- name: Install packages needed for Docker
become: true
apt:
name: "{{ docker_packages }}" #uses our declared variable docker_packages
state: present #indicates the desired package state
force_apt_get: yes #forces to use apt-get

- name: Add official GPG key of Docker
shell: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

- name: Save the current Ubuntu release version into a variable
shell: lsb_release -cs
register: ubuntu_version #Output gets stored in this variable

- name: Set right Docker directory
become: true
shell: add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ubuntu_version.stdout }} stable"

- name: Update apt packages
become: true
apt:
update_cache: yes

- name: Install Docker
become: true
apt:
name: docker-ce
state: present
force_apt_get: yes

- name: Test Docker with hello world example
become: true
shell: docker run hello-world
register: hello_world_output

- name: Show output of hello word example
debug: #use debug module
msg: "Container Output: {{hello_world_output.stdout}}"

これで、次のコマンドで実行できます。

ansible-playbook my-playbook.yml -l remote

その後、いくつかの魔法が発生し(しばらく時間がかかる場合があります)、ターミナルの最後のデバッグメッセージのどこかに、「Hello fromDocker!」と表示されるはずです。

結論

この記事では、Ansible、その利点、動作と機能、アーキテクチャ、プラグイン、プレイブック、インベントリ、およびリモートサーバーでAnsibleを使用してDockerを構成およびデプロイする方法について詳しく説明しました。

読んでくれてありがとう!

リンク:https//www.freecodecamp.org/news/what-is-ansible/

#ansible 

What is GEEK

Buddha Community

Ansibleとは何ですか?
坂本  篤司

坂本 篤司

1641263820

Ansibleとは何ですか?

みなさん、こんにちは。今日は、クロスプラットフォームのコンピューターサポートをシンプルで効果的な方法で自動化できる素晴らしいソフトウェアツールであるAnsibleについてお話します。

Ansibleとは何ですか?

Ansibleは、システムインフラストラクチャ全体でITプロフェッショナルの作業を自動化するための書面による指示を生成するツールです。

これは、アプリケーションの展開、構成管理、サービス内オーケストレーション、およびシステム管理者が毎週または毎日行うその他の事実上すべてに使用するITプロフェッショナル向けに特別に設計されています。

Ansibleは、エージェントソフトウェアやその他のセキュリティインフラストラクチャを必要としないため、インストールが簡単です。

Ansibleは自動化、システム管理、DevOpsの最先端にありますが、開発者が日常業務で使用するためのツールとしても価値があります。

Ansibleを使用すると、1台のマシンだけでなく、それらすべての完全なネットワークを一度にセットアップでき、プログラミングの知識は必要ありません。

Ansibleはどのように機能しますか?

Ansibleはネットワーク上のノード(クライアント、サーバーなど)に接続し、Ansibleモジュールと呼ばれる小さなプログラムを各ノードに送信します。

次に、SSHを介してこれらのモジュールを実行し、完了したら削除します。

このインタラクションが機能するには、Ansibleコントロールノードが管理対象ノードへのログインアクセス権を持っている必要があります。

最も頻繁な認証方法はSSHキーですが、別の方法も許可されています。

Ansibleをインストールして使用を開始する方法を知りたい場合は、以下で説明します。

Ansibleのアーキテクチャ

それでは、Ansibleのアーキテクチャとそれがどのように操作を管理するかを見てみましょう。

Ansibleプラグイン

プラグインは機能を強化する補足的なコードであり、おそらく他の多くのツールやプラットフォームでプラグインを使用したことがあります。Ansibleの組み込みプラグインを使用することも、独自のプラグインを作成することもできます。

例は次のとおりです。

  • アクションプラグイン
  • プラグインになる
  • キャッシュプラグイン
  • コールバックプラグイン
  • Cliconfプラグイン
  • 接続プラグイン
  • HTTPAPIプラグイン
  • インベントリプラグイン
  • ルックアッププラグイン
  • Netconfプラグイン
  • テスト

Ansibleモジュール

モジュールは、Ansibleが中央制御ワークステーションからすべてのノードまたはリモートホストに配布する短いプログラムです。モジュールはサービスやパッケージなどを制御し、プレイブックを介して実行できます。

Ansibleは、更新をインストールしたり、必要な操作を完了したりするために必要なすべてのモジュールを実行し、完了後にそれらを削除します。

Ansibleインベントリ

Ansibleは、インベントリファイルを使用して、インフラストラクチャの一部であるホストを追跡し、それらにアクセスしてコマンドとプレイブックを実行します。

Ansibleは、インフラストラクチャ内のさまざまなシステムと並行して機能します。これは、デフォルトでホストの場所に保存されているAnsibleのインベントリファイルに記載されているメソッドを選択することで実現されます。

インベントリが登録されると、単純なテキストファイルを使用して任意のホストに変数を割り当てることができ、さまざまなソースからインベントリを取得できます。

Ansible Playbook

ITプロフェッショナルは、Ansibleプレイブックを使用して、アプリケーション、サービス、サーバーノード、およびその他のデバイスを最初から作成することなくプログラムできます。Ansibleプレイブックは、それらに含まれる条件、変数、およびタスクとともに、保存、共有、および永久に再利用できます。

Ansible Playbookは、タスクマニュアルと同様に機能します。これらは単純なYAMLファイルであり、人間が読める形式のデータシリアル化言語です。

プレイブックは、Ansibleを非常に人気のあるものにする中心的な要素です。これらは、ユーザーが特定の構文を知っているか覚えている必要なしに、迅速に完了することができるアクティビティを指定します。

Ansibleを使用する利点

  • Ansibleは、SSHを介してすべての操作を実行し、エージェントをインストールする必要がないため、すばやく簡単に使用できます。
  • Ansibleは無料のオープンソースツールであり、セットアップと使用が簡単です。Ansibleのプレイブックには、特別なコーディングの知識は必要ありません。
  • Ansibleを使用すると、構成ファイルを必要とせずに、サービスが動作していることを確認したり、コマンドラインから再起動したりするなどの簡単なタスクを実行できます。

より広範囲またはより均一なシステムでは、Ansibleの方が適している場合があります。また、さまざまなメソッドとクラウドインフラストラクチャを管理するための一連のモジュールも提供します。

なぜAnsibleはそれほど重要なのですか?

近代化とデジタルトランスフォーメーションには、必要かつ目的のある自動化が必要です。ITインフラストラクチャ全体の速度、拡張性、および安定性を向上させるために、今日の動的なコンテキストで新しい管理ソリューションが必要です。

テクノロジーは、製品を改善するための最も強力な手段です。以前は、これを達成するには、かなりの量の手作業と複雑な調整が必要でした。しかし今日、Ansible(セットアップを簡素化し、DevOps操作を高速化するために何千もの企業で使用されているシンプルで強力なIT自動化エンジン)が利用可能です。

UbuntuにAnsibleをインストールする方法

次のコマンドを実行して、マシンにPPAを構成し、Ansibleをインストールします。

リポジトリを更新します。

sudo apt-get update

ソフトウェアのプロパティをインストールします。

sudo apt-get install software-properties-common

そして、次のようにAnsibleをインストールします。

sudo apt-add-repository --yes --update ppa:ansible/ansible

次に、これを実行します。

sudo apt-get install ansible

以下に示すようなものが必要です。

ansible_installation

Ansibleが正常にインストールされたので、次のコマンドを使用して、Ansibleが機能しているかどうかをテストしましょう。

ansible --version

ansible_check

以下のコマンドを使用して、インベントリホストlocalhostのすべてのシステムをターゲットにするようにAnsibleに指示し、(sshではなく)ローカルコンソールからモジュールpingを実行します。

ansible all -i localhost, --connection=local -m ping

以下に示すような応答が得られるはずです。

ansible_ping

Ansibleがターゲットとするホストを変更する方法

のホストのファイルに変更を加えます/etc/ansible/hosts。これは、Ansibleが指定されたコマンドをリモートで実行する必要がある定義済みのホスト(およびグループ)を検索するデフォルトのファイルです。

sudo nano /etc/ansible/hosts

以下の行をファイルに追加し、変更を保存します。

[local]
localhost

調整したインベントリファイルを使用して次のコマンドを実行します。

ansible all --connection=local -m ping

応答は、以下のようになります。

ansible_pong

リモートサーバーを構成する方法

Digital Oceanドロップレットを使用して、Ansibleテストプログラムをリモートサーバーにデプロイします。

以下のコマンドを使用して、サーバーにSSH接続します。

ssh username@IP_Address

注:ドロップレットの作成時に選択されたsshキーはプロファイルにすでに構成されています。

ansible_server

リモートサーバー用にAnsibleを構成する方法

以下のコマンドを使用して、/ etc / ansible / hosts内のhostsファイルを編集します。

sudo nano /etc/ansible/hosts

以下の行をファイルに追加し、変更を保存します。

[remote]
remote_test

[remote:vars]
ansible_host=IP_ADDRESS_OF_VIRTUAL_MACHINE
ansible_user=USERNAME

AnsibleがSSH経由でリモートコンピューティングインスタンスに接続できるかどうかを確認するには、次のコマンドを入力してみましょう。

ansible remote -m ping

asnible_result

以下のコマンドを使用してAnsibleプレイブックを作成します。これは、リモートサーバーで実行するコマンドとその順序をAnsibleに指示する一般的な方法です。プレイブックは.ymlで記述されており、厳密な形式に従います。

公式のAnsibleドキュメントでは、プレイブックについて詳しく知ることができます。

nano my-playbook.yml

次のコードを追加します。これは、Ansibleにいくつかの手順でDockerをインストールするように指示します。

---
- name: install docker
hosts: remote
become_method: sudo
become_user: root
vars: #local variables
docker_packages:
- apt-transport-https
- ca-certificates
- curl
- software-properties-common

tasks:
- name: Update apt packages
become: true #make sure you execute the task with sudo privileges
apt: #use apt module
update_cache: yes #equivalent of apt-get update

- name: Install packages needed for Docker
become: true
apt:
name: "{{ docker_packages }}" #uses our declared variable docker_packages
state: present #indicates the desired package state
force_apt_get: yes #forces to use apt-get

- name: Add official GPG key of Docker
shell: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

- name: Save the current Ubuntu release version into a variable
shell: lsb_release -cs
register: ubuntu_version #Output gets stored in this variable

- name: Set right Docker directory
become: true
shell: add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ubuntu_version.stdout }} stable"

- name: Update apt packages
become: true
apt:
update_cache: yes

- name: Install Docker
become: true
apt:
name: docker-ce
state: present
force_apt_get: yes

- name: Test Docker with hello world example
become: true
shell: docker run hello-world
register: hello_world_output

- name: Show output of hello word example
debug: #use debug module
msg: "Container Output: {{hello_world_output.stdout}}"

これで、次のコマンドで実行できます。

ansible-playbook my-playbook.yml -l remote

その後、いくつかの魔法が発生し(しばらく時間がかかる場合があります)、ターミナルの最後のデバッグメッセージのどこかに、「Hello fromDocker!」と表示されるはずです。

結論

この記事では、Ansible、その利点、動作と機能、アーキテクチャ、プラグイン、プレイブック、インベントリ、およびリモートサーバーでAnsibleを使用してDockerを構成およびデプロイする方法について詳しく説明しました。

読んでくれてありがとう!

リンク:https//www.freecodecamp.org/news/what-is-ansible/

#ansible