ホーム Enterprise Ansible を使い始める方法

Ansible を使い始める方法

by ゲストの著者

Ansible は、複数のマシンに変更を一括デプロイするための優れた方法です。たとえば、私はこれを使用して、新しいマシンで基本的なセットアップを行ったり、複数のホストを同時に更新したりしました。また、Ansible はホームラボ環境で使用されるだけでなく、企業環境でも非常に人気があるため、身に付けておくと非常に価値のあるスキルになることに留意することも重要です。

Ansible は、複数のマシンに変更を一括デプロイするための優れた方法です。たとえば、私はこれを使用して、新しいマシンで基本的なセットアップを行ったり、複数のホストを同時に更新したりしました。また、Ansible はホームラボ環境で使用されるだけでなく、企業環境でも非常に人気があるため、身に付けておくと非常に価値のあるスキルになることに留意することも重要です。

新しいマシンでの Ansible のセットアップ

まず、「ansible」パッケージをインストールする必要があります。これは次のように簡単です。

`sudo apt update && sudo apt install ansible`

そして、次の作業を行うための Ansible ディレクトリを作成する必要があります。

`mkdir ~/ansible && cd ~/ansible`

これで、ローカル マシンの Ansible ディレクトリに移動したはずです。

Ansible の概要

Ansible の 2 つの主な機能、すべてのホストを保存するインベントリと、ホスト上で実行するための「命令」を含むプレイブックを使用します。 Ansible がプレイブックを読み取ってアクションを実行するには、ホストがどこにあるか、つまりインベントリ ファイルが何であるかを知る必要があります。これは、すべてのホストの単なる「インベントリ」です。

これで、プレイブック自体が完成しました。Ansible がインベントリを読み取り、すべてのホストを認識すると、何をすべきかを探し始めます。それがプレイブックです。これは単純な YAML ファイルであり、「モジュール」を利用してタスクを実行します。上記のモジュールに関するドキュメントは、次の場所にあります。 Ansible Web サイト。ご不明な点がございましたら、こちら [初心者向け Ansible ビデオ] NetworkChuck の記事は、物事をうまく説明しています。

Ansible インベントリの作成

Ansible とその機能の基本を理解したので、インベントリを作成できます。形式は YAML または INI のいずれかになります。シンプルにするために、INI を使用し、ホストを 1 つだけ追加します。

ファイルの例を次に示します。

在庫.ini:
「`イニ」
[強力]
192.168.1.78
「 `

「ansible」ディレクトリに「inventory.ini」という名前を付けます。このファイルは、「192.168.1.78」の単一ホストを持つ「強力」の「グループ」を作成します。これは後でハンドブックで使用できます。設定に応じて、任意のグループ名と IP を指定できます。必要に応じて、グループにさらにホストを追加することもできます。

Ansible Playbook のデプロイ

まず、Ansible が動作していることを確認します。

SSH 公開鍵は、アクセスしようとしているホスト上のauthorized_keys ファイル内に存在する必要があることに注意してください。そうでない場合、このコマンドは失敗します。ここでは「powerful」グループを使用していますが、任意の名前を付けてください。

`ansible -i ./inventory.ini -mping -u 管理者強力`

それが機能する場合は、そのノード上に Playbook をプロビジョニングできます。

私たちがデプロイしている Playbook は、システムを更新し、再起動して、オンラインに戻るのを待つだけです。グループ内に複数のノードがある場合、各ノードを 1 つずつ処理し、前のノードがオンラインに戻るのを待ってから次のノードを再起動します。これにより、次のようなものを使用している場合、ノード上のサービスがシャットダウンして移行するのに十分な時間が与えられます。 ドッカーの群れ。

更新.yml:
「 `yaml
– 名前: すべてのノードをアップグレードして再起動します
事実の収集: いいえ
ホスト: 「{{ variable_hosts }}」
なる:はい
シリアル: 1

タスク:
– 名前: 更新とアップグレード | {{ 在庫ホスト名 }}
apt:
# 下位互換性を強制する
Force_apt_get: はい
アップデートキャッシュ: はい
アップグレード: 「はい」

– 名前: 再起動 | {{ 在庫ホスト名 }}
リブート:
# 再起動後にノードがオンラインに戻るまでの待ち時間
再起動タイムアウト: 300
# 前のタスク (apt) が完了してから再起動するまでの待ち時間
再起動前遅延: 60

– 名前: ピン | {{ 在庫ホスト名 }}
ピング:

– 名前: 一時停止 | {{ 在庫ホスト名 }}
一時停止:
分: 5
「 `

`ansible-playbook -i ./inventory.ini -e variable_hosts=powerful -u 管理者 -K ./update.yml`

![Playbook の実行イメージ](./002-ansible-playbook-executed.png)

フラグの説明:
– -i: インベントリファイルを指定します。
– -e: ホストを指定する必要があります。Playbook には変数 `variable_hosts` があり、これが Playbook に渡されます。
– -u: これは、ホスト上でコマンドを実行するために使用されるユーザーです。
– -K: これは、ユーザーに sudo パスワードの入力を求めるよう Playbook に指示します。そうしないと、Playbook は失敗します。

閉じた思考

Ansible は、さまざまな用途に使用できる、非常に強力で多用途なツールです。この記事ではほんの表面をなぞっただけですが、さらに詳しく知るには、実験とタスクの自動化を続けてください。 Kubernetes のデプロイを自動化する場合でも、今日のように単にシステムを更新する場合でもです。

Ansible サイト

-イーサン・エドワーズ

StorageReview と連携する

ニュースレター | YouTube | LinkedIn | Instagram | Twitter | Facebook | TikTokRSSフィード