ホームページ >システムチュートリアル >Linux >Ansible アーキテクチャと動作原理を理解する
Ansible は、マルチノードの公開とリモート タスクの実行をサポートするモデル駆動型の構成マネージャーです。デフォルトでは、SSH がリモート接続に使用されます。管理対象ノードに追加のソフトウェアをインストールする必要はなく、さまざまなプログラミング言語を使用して拡張できます。
上の図は、ansible の基本的なアーキテクチャを示しています。上の図から、次の部分で構成されていることがわかります。
上記は、インターネット上にある 2 つの Ansible の動作原理図です。どちらの図も、基本的にはアーキテクチャ図をベースに拡張したものです。上の写真から理解できます:
1. 管理端末は、ローカル、ssh、zeromq の 3 つの接続方法をサポートしています。デフォルトでは、ssh ベースの接続が使用されます。この部分は、基本アーキテクチャ図の接続モジュールに対応します。 ;
2. ホスト インベントリ (ホスト グループ) は、アプリケーションの種類などに応じて分類できます。管理ノードは、さまざまなモジュール (単一モジュール、単一コマンドのバッチ実行、アドホックと呼ぶことができます) を通じて対応する操作を実装します。
3. 管理ノードは、プレイブックを使用して、Web サービスのインストールとデプロイ、データベース サーバーのバッチ バックアップなど、ある種の機能を実装するための複数のタスクのコレクションを実装できます。 Playbook は、システムが複数のアドホック操作を組み合わせて操作する構成ファイルとして単純に理解できます。
Ansible はコマンドの中核部分であり、主にアドホック コマンド、つまり単一のコマンドを実行するために使用されます。デフォルトでは、ホスト部分とオプション部分に従う必要があります。デフォルトでモジュールが指定されていない場合は、コマンド モジュールが使用されます。例:
リーリーただし、デフォルトのモジュールは ansible.cfg で変更できます。 ansible コマンドのパラメーターは次のように説明されます:
# ansible-doc -h Usage: ansible-doc [options] [module...]
该指令用于查看模块信息,常用参数有两个-l 和 -s ,具体如下:
# 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 サイトの他の関連記事を参照してください。