記事のディレクトリ
、Ansibleプロフィール
1.1 Ansibleは何ですか
- 近年、より多くの火災でAnsible 自動化ツールのPythonベースの運用・保守の開発主に助けを自動化するITの運用・保守作業のために、ヒューマンエラーを削減、業務の自動化率を向上させ、運用・保守の効率を向上させます。Ansibleを実行するモジュールに基づいており、それは主に、ボリュームを展開するためのフレームワークを提供するためのバッチ展開、Ansibleにどんな能力を持っていません。 一般的に、自動化、管理の自動化、体系的なシステムタスク、継続的インテグレーション、ゼロダウンタイムスムーズなアップグレードをプロビジョニング、ソフトウェアの自動化を導入しました。
1.2なぜAnsible
- 完全にPythonの開発に基づいてAnsible、そしてすでに、Pythonは独自のツールの閾値を徐々に減少を開発するために、より一般的な、運用、保守担当者がトレンドになってきてさDevOpsチームの国の(開発、技術的な業務や部門、コラボレーションと統合の間に品質保証(QA)のコミュニケーションを促進し)、そうAnsibleの二次開発を容易にするために、
- 内蔵されたモジュールのAnsible富さらには、具体的な機能モジュールの商用プラットフォームのために、完全に毎日必要な機能を満たしています
- Ansibleに次(ノードが人であり、すべての人はまた、中心になることができる)の概念を分散化完全な構成管理センターへの移行、コピー操作
- エージェントレス(クライアントなし)終了後に経営者によって構成された任意の構成のないクライアントは、使用することができます
1.3 Ansibleで構成される構造
- AnsibleAnsibleコマンドツール、ツールの実行コアであり、1回または一時的な操作はコマンドで実行されています。
- Ansibleプレイブック、スクリプトタスク(タスクも知られているセット)は、タスクスケジューリングが順Ansible、ヤム形式で実行Ansibleセットプロファイルを、定義されています。
- インベントリAnsible管理ホストのリストは、デフォルトでは、/ etc / ansible / hostsファイルです。
- モジュール、Ansibleは、これまでAnsible2.3版、1039個のモジュールの合計をコマンド機能モジュールを実行します。また、カスタムモジュールであってもよいです。
- プラグイン、モジュール、比較的小さなプラグイン関数との接続プラグ、プラグ・ループ、可変プラグフィルタインサート、しばしばタイプを補充し、プラグインです。
- API、サードパーティ製のプログラムと呼ばれるアプリケーション・プログラミング・インターフェースを提供します。
1.4どのように動作するAnsible
1、Ansibleなしクライアント、基盤となる通信ソフトウェアに依存しそうAnsible、Linuxのシステムベースの通信OpenSSHは、WindowsベースのシステムPowerShellは、管理が終了Linuxシステムでなければなりません。
使用中の2 Ansible異なる役割は、に分けることができます。ユーザー、Ansibleツールセット と オブジェクトの役割。
3、 Ansibleユーザー 複数の次元から、次の方法に分かれて:
- ストアの構成情報をCMDBとは、企業のITアーキテクチャ、運用、保守担当者が直接CMDBを通じてオペレータが所望の目的を達成するためのツールのAnsible完全なセットを呼び出す指令を発行し、CMDBとAnsibleを組み合わせることが可能で管理します。
- PHP、Pythonの、など:PUBLIC(パブリッククラウド)/ PRIVATE(プライベートクラウド)、ベースのAPIの呼び出しなどAnsibleランは、Ansibleは豊富なAPIインターフェース言語を提供します
- 仮組のアドホック直接使用することは、タスクの実行を達成するためのツールAnsibleセットを呼び出します。
- プレイブックを実行することにより、タスクの実行を完了するために、順番にタスクのセットを事前に振り付け。
4、Ansibleツールセット(ansibleコマンドがあるAnsibleコアツール、司令官)
- :INVENTORY在庫管理ホストansibleの/ etc / ansible /ホスト (聴衆ansibleコマンド実行)
- API:アプリケーション・プログラムは、サードパーティのプログラミング・インタフェースを求めて
- モジュール:リッチは、組み込みの機能モジュールもカスタマイズすることができます
- :プラグインに内蔵およびカスタム・プラグイン、プラグインボイラー、頻繁に使用する機能のような相補的な機能モジュール、プラグ型コネクタ、プラグ・ループ、可変プラグ
5、 オブジェクトのAnsible役割
オブジェクトの役割をAnsible、ホストのだけでなく、LinuxとLinux以外のOS、また、それがプライベート/パブリッククラウド、すべてのタイプに基づいて行動することができ、ネットワークインフラ事業/非ビジネス機器
6、Ansibleのコンポーネント間の関係を呼び出します
ユーザーは(余分な脚本がファイルを読み込む)ansibleまたはansible-脚本を使用する場合、アドホックでのサーバ端末はansible ansible入力コマンドセットや脚本は、1つのプレイブックで事前にプログラムの規則は、その後、プレイとして解体続きます遊びは、タスクansibleを特定できる(タスク)に編成しました。すべてのモジュールは、関連するタスク(モジュール)とプラグイン(プラグイン)、一連のタスクは、リモートクライアントの実行に一時ファイル、またはコマンドへの転送を呼び出し、SSHで定義されたホストのリスト目録に基づいて結果を返す、一時ファイルの実行であれば完成は自動的に削除されます。
7、Ansibleタスク実行モード 以下の2つのカテゴリに分類:
-
アドホックモード(アドホックモジュール)
単一のモジュールを使用して、サポートバッチは、シェルに相当するが、bashでコマンドを実行する単一のコマンドを実行します -
脚本モード(プレイモード)
ansibleキー管理、アドホック設定ファイルを複数として理解することができて、タスクベースの機能を複数の完全なセット
1.5 Ansible通信機構
相互通信を実現するためのプロセス、デーモンのメンテナンスなしAnsible、および通信は、安全なSSHのセキュアな接続統一業界標準に基づいています。 sshPは、リモートホストansible最後に任意の追加のプロセスをインストールする必要はありませんので、すべてのLinuxホスト・システム・ソフトウェアがインストールされている必要がありますので、あなたが行くの中心的な考えを実現するように、エージェントレス(クライアントなし)を達成することができます。Ansible非C / Sアーキテクチャ自体は、クライアント側ではありません次のようにその主な機能は以下のとおりです。
- ノークライアント、単にインストールのssh、パイソン
- 基于
OpenSSL
通信,底层基于SSH协议,Ansible默认使用ssh连接的,但是Ansible也支持其他的连接方式,其他的连接方式是需要插件的支持,才可以实现通信。 - 支持密码和SSH认证,建议使用公私钥方式认证,因为密码认证方式的密码需明文写配置文件,虽然配置文件可加密,但会增加Ansible使用的复杂度.
1.6 常用的自动化运维工具比较
二、Ansible相关文件及命令
2.1 Ansible生成的主要文件
/etc/ansible/ansible.cfg
:配置文件/etc/ansible/hosts
:主机库(host inventory)管理被监控的主机/usr/bin/ansible
: 主程序/usr/bin/ansible-doc
: 文档/usr/bin/ansible-playbook
: 剧本
2.2 Ansible 的7个命令
1、 ansible是核心的指令:
主要用于执行单条命令,默认跟的是主机和选项部分,默认不指定模块时,使用的是command模块(默认使用的模块可以在ansible.cfg修改):
2、ansible-doc:
ansible-doc -h
用于查看模块的信息常见的参数-l -sansible-doc -l
列出已安装的模块ansible-doc -s
模块 : 查查看具体模块的使用方法
3、ansible-galaxy
ansible-galaxy 从站点下载第三方的扩展模块
4、ansible-lint:
ansible-lint
是对playbook的语法进行检查的工具,也可以用ansible-playbook --syntax-check + 剧本名
5、ansible-playbook :
ansible-playbook 读取playbook文件执行相应的动作,执行ansible-playbook的剧本
6、ansible-pull:
ansible-pull 适用于数量多的机器配置,远程执行命令的工具。对运维架构能力比较强
7、ansible-vault:
ansible-vault 配置文件有敏感信息,设置加密/解密这个配置文件