Ansible アーキテクチャと動作原理を理解する
Ansible は、マルチノードの公開とリモート タスクの実行をサポートするモデル駆動型の構成マネージャーです。デフォルトでは、SSH がリモート接続に使用されます。管理対象ノードに追加のソフトウェアをインストールする必要はなく、さまざまなプログラミング言語を使用して拡張できます。
上の図は、ansible の基本的なアーキテクチャを示しています。上の図から、次の部分で構成されていることがわかります。
- コア: ansible
- コア モジュール: これらは ansible に付属するモジュールです
- 拡張モジュール (カスタム モジュール): コア モジュールだけでは特定の機能を完了できない場合は、拡張モジュールを追加できます
- プラグイン: モジュール機能の補完を完了
- Playbook: Ansible のタスク構成ファイル。Playbook 内で複数のタスクを定義し、ansible によって自動的に実行されます
- 接続プラグイン: ansible は接続プラグインに基づいて各ホストに接続します。ansible は ssh を使用して各ホストに接続しますが、他の接続方法もサポートしているため、接続プラグインが必要です。
- ホストインベントリ: ansible によって管理されるホストを定義します
1. 管理端末は、ローカル、ssh、zeromq の 3 つの接続方法をサポートしています。デフォルトでは、ssh ベースの接続が使用されます。この部分は、基本アーキテクチャ図の接続モジュールに対応します。 ;
2. ホスト インベントリ (ホスト グループ) は、アプリケーションの種類などに応じて分類できます。管理ノードは、さまざまなモジュール (単一モジュール、単一コマンドのバッチ実行、アドホックと呼ぶことができます) を通じて対応する操作を実装します。
3. 管理ノードは、プレイブックを使用して、Web サービスのインストールとデプロイ、データベース サーバーのバッチ バックアップなど、ある種の機能を実装するための複数のタスクのコレクションを実装できます。 Playbook は、システムが複数のアドホック操作を組み合わせて操作する構成ファイルとして単純に理解できます。
Ansible はコマンドの中核部分であり、主にアドホック コマンド、つまり単一のコマンドを実行するために使用されます。デフォルトでは、ホスト部分とオプション部分に従う必要があります。デフォルトでモジュールが指定されていない場合は、コマンド モジュールが使用されます。例:
リーリーただし、デフォルトのモジュールは ansible.cfg で変更できます。 ansible コマンドのパラメーターは次のように説明されます:
- パラメータ:
- -a 'Arguments', --args='Arguments' コマンドラインパラメータ
- -m NAME, --module-name=NAME 実行モジュールの名前はデフォルトで使用されるため、単一のコマンドのみを実行する場合は、-m パラメータは必要ありません。 🎜>
- -i PATH、--inventory=PATH はインベントリ ホスト ファイルへのパスを指定します。デフォルトは /etc/ansible/hosts.
- -u ユーザー名、--user=ユーザー名実行ユーザー、現在のユーザーの代わりにこのリモート ユーザー名を使用します
- -U --sud-user=SUDO_User sudo を実行するユーザー。デフォルトは root
- -k --ask-pass ログイン パスワード、キーベースの認証を想定する代わりに SSH パスワードの入力を求めます
- -K --ask-sudo-pass パスワードの入力を求めるプロンプトには sudo を使用します
- -s --sudo sudo run
- -S --su su コマンドを使用します
- -l --list サポートされているすべてのモジュールを表示します
- -s --snippet は、スクリプト スニペットを表示するモジュールを指定します
- -f --forks=NUM 並列タスクの数。 NUM は整数として指定され、デフォルトは 5 です。 #ansible testhosts -a "/sbin/reboot" -f 10 testhosts グループ内のすべてのマシンを一度に 10 台ずつ再起動します
- --private-key=PRIVATE_KEY_FILE 秘密キーのパス。このファイルを使用して接続を確認します
- -v --verbose 詳細
- all は、ホストによって定義されたすべてのホストに対して を実行します
- -M MODULE_PATH, --module-path=MODULE_PATH 実行するモジュールのパス。デフォルトは /usr/share/ansible/
- --list-hosts は、このプレイブック ファイルを実行するホストを出力するだけであり、プレイブック ファイル を実際に実行するわけではありません。
- -o --1 行の圧縮出力、要約された出力 すべてを 1 行に出力してみます。
- -t Directory, --tree=Directory この出力ディレクトリの内容を保存し、結果を各ホスト上のファイルに保存します。
- -B バックグラウンド実行タイムアウト
- -P バックグラウンドプログラム時間を調査します
- -T 秒、--timeout=秒単位の時間
- -P NUM、--poll=NUM バックグラウンド作業を数秒ごとにポーリングします。必須 - b
- -c 接続、--connection=使用する接続接続タイプ。可能なオプションは、paramiko(SSH)、SSH、およびローカルです。 Local は主に crontab またはスタートアップに使用されます。
- --tags=TAGS 指定したタグを持つタスクのみを実行します。 例: ansible-playbook test.yml --tags=copy タグ copy を持つタスクのみを実行します。
- --list-hosts は、このプレイブック ファイルを実行するホストを出力するだけであり、プレイブック ファイル を実際に実行するわけではありません。
- --list-tasks 実行されるすべてのタスクをリストします
- -C, --check は変更される内容をテストするだけで、実際には実行しません。代わりに、考えられる変更を予測しようとします。
- --syntax-check スクリプトの構文チェックを実行しますが、実行はしません
- -l SUBSET、--limit=SUBSET 選択したホスト/グループ モードをさらに制限します --limit=192.168.0.15 この IP のみを実行します
- --skip-tags=SKIP_TAGS これらの値に一致しないタグを持つプレイとタスクのみを実行します --skip-tags=copy_start
- -e EXTRA_VARS, --extra-vars=EXTRA_VARS key=value または YAML/JSON として設定される追加変数
- #cat update.yml
- ---
- - ホスト: {{ ホスト }}
- リモートユーザー: {{ ユーザー }}
- ....
- #ansible-playbook update.yml --extra-vars "hosts=vipers user=admin" {{hosts}}、{{user}} 変数を渡します。ホストは IP またはグループ名にすることができます
- -l,--limit 指定したホスト/グループでタスクを実行します --limit=192.168.0.10、192.168.0.11 または -l 192.168.0.10、192.168.0.11 これら 2 つの IP でのみタスクを実行します
# ansible-doc -h Usage: ansible-doc [options] [module...]
该指令用于查看模块信息,常用参数有两个-l 和 -s ,具体如下:
- //列出所有已安装的模块
- # ansible-doc -l
- //查看具体某模块的用法,这里如查看command模块
- # ansible-doc -s command
# ansible-galaxy -h Usage: ansible-galaxy [init|info|install|list|remove] [--help] [options] ...
ansible-galaxy 指令用于方便的从https://galaxy.ansible.com/ 站点下载第三方扩展模块,我们可以形象的理解其类似于centos下的yum、python下的pip或easy_install 。如下示例:
[root@localhost ~]# ansible-galaxy install aeriscloud.docker - downloading role 'docker', owned by aeriscloud - downloading role from https://github.com/AerisCloud/ansible-docker/archive/v1.0.0.tar.gz - extracting aeriscloud.docker to /etc/ansible/roles/aeriscloud.docker - aeriscloud.docker was installed successfully
这个安装了一个aeriscloud.docker组件,前面aeriscloud是galaxy上创建该模块的用户名,后面对应的是其模块。在实际应用中也可以指定txt或yml 文件进行多个组件的下载安装。这部分可以参看官方文档。
ansible-lint是对playbook的语法进行检查的一个工具。用法是ansible-lint playbook.yml 。
该指令是使用最多的指令,其通过读取playbook 文件后,执行相应的动作,这个后面会做为一个重点来讲。
该指令使用需要谈到ansible的另一种模式---pull 模式,这和我们平常经常用的push模式刚好相反,其适用于以下场景:你有数量巨大的机器需要配置,即使使用非常高的线程还是要花费很多时间;你要在一个没有网络连接的机器上运行Anisble,比如在启动之后安装。这部分也会单独做一节来讲。
ansible-vault主要应用于配置文件中含有敏感信息,又不希望他能被人看到,vault可以帮你加密/解密这个配置文件,属高级用法。主要对于playbooks里比如涉及到配置密码或其他变量时,可以通过该指令加密,这样我们通过cat看到的会是一个密码串类的文件,编辑的时候需要输入事先设定的密码才能打开。这种playbook文件在执行时,需要加上 --ask-vault-pass参数,同样需要输入密码后才能正常执行。具体该部分可以参查官方博客。
注:上面七个指令,用的最多的只有两个ansible 和ansible-playbook ,这两个一定要掌握,其他五个属于拓展或高级部分。
以上がAnsible アーキテクチャと動作原理を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Linuxシステムの5つの基本コンポーネントは次のとおりです。1。Kernel、2。Systemライブラリ、3。Systemユーティリティ、4。グラフィカルユーザーインターフェイス、5。アプリケーション。カーネルはハードウェアリソースを管理し、システムライブラリは事前コンパイルされた機能を提供し、システムユーティリティはシステム管理に使用され、GUIは視覚的な相互作用を提供し、アプリケーションはこれらのコンポーネントを使用して機能を実装します。

gitリポジトリアドレスを表示するには、次の手順を実行します。1。コマンドラインを開き、リポジトリディレクトリに移動します。 2。「git remote -v」コマンドを実行します。 3.出力と対応するアドレスでリポジトリ名を表示します。

NotePadはJavaコードを直接実行することはできませんが、他のツールを使用することで実現できます。コマンドラインコンパイラ(Javac)を使用してByteCodeファイル(filename.class)を生成します。 Javaインタープリター(Java)を使用して、バイトコードを解釈し、コードを実行し、結果を出力します。

Sublimeでコードを実行するには6つの方法があります。ホットキー、メニュー、ビルドシステム、コマンドライン、デフォルトビルドシステムの設定、カスタムビルドコマンド、プロジェクト/ファイルを右クリックして個々のファイル/プロジェクトを実行します。ビルドシステムの可用性は、崇高なテキストのインストールに依存します。

Linuxの主な用途には、1。Serverオペレーティングシステム、2。EmbeddedSystem、3。Desktopオペレーティングシステム、4。開発およびテスト環境。 Linuxはこれらの分野で優れており、安定性、セキュリティ、効率的な開発ツールを提供します。

GITソフトウェアのインストールには、次の手順が含まれています。インストールパッケージをダウンロードしてインストールパッケージを実行して、インストール構成gitインストールgitバッシュ(Windowsのみ)を確認します

Laravelをインストールするには、これらの手順を順番に進みます。コンポーザー(MacOS/LinuxとWindows用)インストールLaravelインストーラーをインストールします。

開発環境をカスタマイズするには多くの方法がありますが、グローバルGit構成ファイルは、ユーザー名、電子メール、優先テキストエディター、リモートブランチなどのカスタム設定に使用される可能性が最も高いものです。グローバルGIT構成ファイルについて知っておくべき重要なことは次のとおりです。
