ホームページ > バックエンド開発 > Python チュートリアル > Ansible 入門 - 初心者ガイド : DevOps ツール シリーズの日々

Ansible 入門 - 初心者ガイド : DevOps ツール シリーズの日々

王林
リリース: 2024-08-23 06:04:01
オリジナル
1122 人が閲覧しました

Getting Started with Ansible - The Beginner’s Guide : Day of days DevOps Tools Series

「50 日間で 50 の DevOps ツール」シリーズの 30 日目へようこそ!今日は、DevOps ツールキットの最も重要なツールの 1 つである Ansible について説明します。このブログでは、Ansible の基本を紹介し、その主要コンポーネントを分解し、簡単な例を使用して開始方法を示します。初心者にとって完璧な出発点となるよう、物事をわかりやすく説明していきます。

アンシブルとは何ですか?

Ansible は、構成管理、アプリケーションのデプロイメント、オーケストレーションなどのタスクを簡素化するオープンソースの自動化ツールです。シンプルでありながら強力になるように設計されており、反復的なタスクを自動化し、インフラストラクチャをより効率的に管理できるようになります。

主な特徴:

エージェントレス: Ansible ではリモート システムにエージェントをインストールする必要がないため、オーバーヘッドが削減されます。
人間が読める YAML プレイブック: Ansible は YAML (Yet Another Markup Language) を使用して、読み書きが簡単なプレイブックを作成します。
冪等: 意図しない変更を心配することなく、同じプレイブックを複数回実行できます。

Ansible を使用する理由

エージェントレス アーキテクチャ: Ansible はエージェントレスであるため、クライアント システムに追加のソフトウェアをインストールする必要がなく、オーバーヘッドと潜在的なセキュリティ リスクが軽減されます。

シンプルな構文: Ansible は、読み書きが簡単な YAML をプレイブックに使用しており、自動化が初めての方でもアクセスしやすくなっています。

冪等性: Ansible は、現在の状態に関係なく、望ましい状態が確実に達成されるようにします。これは、プレイブックを複数回実行しても問題やアクションの重複が発生しないことを意味します。

広範なコミュニティ サポート: 大規模で活発なコミュニティを備えた Ansible には、ニーズに合わせて再利用およびカスタマイズできる豊富なロール、モジュール、プレイブックがあります。

スケーラビリティ: 数台のサーバーを管理する場合でも、数千台のサーバーを管理する場合でも、Ansible は適切に拡張できるため、あらゆる規模の組織に適しています。

Ansible のコアコンポーネント

Inventory: これは、Ansible が管理するホスト (サーバー) のリストです。インベントリは、静的 (ファイルで定義) または動的 (スクリプトによって生成) にすることができます。

モジュール: モジュールは Ansible の主力製品です。これらはリモート ホスト上で実行され、パッケージのインストール、ファイルのコピー、サービスの管理などのタスクを実行します。

Playbook: Playbook は、Ansible の構成、デプロイメント、およびオーケストレーション言語です。これらは YAML で書かれており、ホスト上で実行される一連のタスクを記述します。

ロール: ロールを使用すると、Playbook を再利用可能なコンポーネントに分割できるため、大規模なプロジェクトの管理と整理が容易になります。

変数: 変数は、Playbook 全体で再利用できる値を保存するために使用されます。これらにより柔軟性が提供され、値をハードコーディングせずに Playbook をカスタマイズできます。

ハンドラー: ハンドラーは、他のタスクによってトリガーされた場合にのみ実行される特別なタスクです。これらはサービスの再起動などによく使用されます。

Ansible のセットアップ

まず、コントロール ノードに Ansible をインストールします。インストールプロセスは簡単ですが、オペレーティングシステムによって若干異なります。

Ubuntu/Debian への Ansible のインストール

sudo apt update
sudo apt install ansible -y
ログイン後にコピー

CentOS/RHEL への Ansible のインストール

sudo yum install epel-release -y
sudo yum install ansible -y
ログイン後にコピー

インストールの確認
インストール後、次のコマンドを実行して、Ansible が正しくインストールされていることを確認できます。

ansible --version
ログイン後にコピー

初めての Ansible プレイブックを作成する

リモート サーバーに Nginx をインストールするための簡単なプレイブックを作成してみましょう。まずは在庫を定義することから始めます。

ステップ 1: インベントリ ファイルを作成する
hosts という名前のファイルを作成します:

[webservers]
34.42.111.35
34.42.111.66
ログイン後にコピー

このインベントリ ファイルは、2 つのサーバーを含む webservers というグループを定義します。

ステップ 2: プレイブックを作成する
次に、これらのサーバーに Nginx をインストールして起動するためのプレイブックを作成します。

nginx_setup.yml という名前のファイルを作成します:

---
- name: Install Nginx on web servers
  hosts: webservers
  become: yes

  tasks:
    - name: Install Nginx
      apt:
        name: nginx
        state: present

    - name: Start Nginx service
      service:
        name: nginx
        state: started
        enabled: true
ログイン後にコピー

Understanding the Playbook

name: A human-readable description of what the playbook or task does.
hosts: Specifies the group of hosts (from the inventory) where the playbook should run.
become: Indicates that Ansible should use elevated privileges (like sudo).
tasks: Lists the steps that Ansible will execute. Here, we’re installing Nginx and ensuring the service is started and enabled on boot.

Step 3: Run the Playbook
To execute the playbook, run the following command:

ansible-playbook -i hosts nginx_setup.yml
ログイン後にコピー

This command tells Ansible to run the tasks in nginx_setup.yml on the hosts defined in the hosts inventory file.

Real-Life Scenario: Automating Package Installation

Consider a scenario where you need to install a set of packages on multiple servers. Doing this manually would be time-consuming and prone to errors. With Ansible, you can automate this task easily.

Here’s a simple playbook to install multiple packages:

---
- name: Install essential packages
  hosts: all
  become: yes

  tasks:
    - name: Install packages
      apt:
        name:
          - git
          - curl
          - htop
        state: present
ログイン後にコピー

In this playbook, Ansible installs git, curl, and htop on all servers listed in the inventory. The apt module ensures that each package is installed.

Real-Life Example: Simplifying User Management

Imagine you need to create a new user on multiple servers and assign them to specific groups. Manually performing this task on each server would be tedious. With Ansible, it’s a breeze.

Here’s how you can do it:

---
- name: Create a new user
  hosts: all
  become: yes

  tasks:
    - name: Create user "devuser"
      user:
        name: devuser
        state: present
        groups: sudo
ログイン後にコピー

This playbook creates a new user devuser on all managed servers and adds them to the sudo group.

Benefits of Using Ansible

Consistency: Ansible ensures that your systems are configured consistently, reducing the risk of configuration drift.
Efficiency: Automating repetitive tasks frees up time for more critical work.
Scalability: Whether managing a handful of servers or thousands, Ansible scales effortlessly.
Flexibility: Ansible’s modular approach allows you to customize and extend its functionality as needed.

Conclusion

Ansible is a powerful yet easy-to-use tool that can dramatically simplify the management of your infrastructure. With just a few lines of code, you can automate complex tasks, ensuring consistency and reliability across your environment. Whether you're setting up servers, deploying applications, or managing configurations, Ansible can help you do it more efficiently.

Tomorrow, we'll dive into more advanced Ansible topics, exploring features that can take your automation to the next level. Stay tuned!

? Make sure to follow me on LinkedIn for the latest updates: Shiivam Agnihotri

以上がAnsible 入門 - 初心者ガイド : DevOps ツール シリーズの日々の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート