運行メンテナンス自動化のANSIBLE(基礎知識)
3407 ワード
Ansible発展史
Ansible同類の自動化ツールGitHubの注目度(2018-06-23)
Ansible特性
1、モジュール化:特定のモジュールを呼び出し、特定のタスクを完成する2、Paramiko、PyYAML、Jinja 2(テンプレート言語)の3つのキーモジュール3、カスタムモジュール4をサポートする4、Python言語に基づいて5を実現する5、配置が簡単で、pythonとSSH(デフォルトでインストールされている)に基づいて、agentless 6、安全で、OpenSSH 7に基づいて、playbook編成タスク8、べき乗などをサポートする:1つのタスクを1回実行し、n回実行する効果と同じである.反復実行による予期せぬ事態をもたらさない9、エージェントを必要とせずPKI(sslを必要としない)10に依存しない10、任意のプログラミング言語を使用してモジュール11、YAMLフォーマットを書くことができ、タスクを編成し、豊富なデータ構造12、より強力な多層ソリューションをサポートする
Ansibleアーキテクチャ
Ansible動作原理
Ansible主要構成部分
1、ANSIBLE PLAYBOOKS: タスクシナリオ(タスクセット)、Ansibleタスクセットを定義プロファイルを編成し、Ansible順で順次実行し、通常JSON形式のYMLファイルである.2、INVENTORY: Ansible管理ホストのリスト/etc/anaible/hosts.3、MODULES:Ansibleコマンドを実行する機能モジュールの多くは内蔵コアモジュールであり、カスタマイズも可能である.4、PLUGINS: モジュール機能の補足、例えば接続タイププラグイン、循環プラグイン、変数プラグイン、フィルタプラグインなど、この機能は常用しない5、API: サードパーティプログラム呼び出しのためのアプリケーションプログラミングインターフェース6、ANSIBLE: 組合せINVENTORY、API、MODULES、PLUGINSの緑枠であり、ansibleコマンドツールと理解でき、それはコア実行ツール7、Ansibleコマンド実行ソース: USERである.一般ユーザー、すなわちSYSTEM ADMINISTRATOR CMDB(構成管理データベース)API呼び出し PUBLIC/PRIVATE CLOUD API呼び出し USER-->Ansible Playbook->Ansibile 8、ansibleによる管理の実現方式: Ad- Hocすなわちansibleコマンド、主に一時命令使用シーン 前提となる計画が必要9、Ansible-playbook(シナリオ)実行プロセス:すでに編成されたタスクセットをAnsible-Playbookマスターまたはバリアマシン
Ansible取付
rpmパッケージインストール:Ansible EPELソース CentOS 6: wget-O/etc/yumに基づくrepos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo CentOS7: wget -O/etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum-y install ansibleコンパイルインストール: yum-y install python-jinja 2 PyYAML python-paramiko python-babel python-crypto tar xf ansible-1.5.4.tar.gz cd ansible-1.5.4 python setup.py build python setup.py install mkdir/etc/ansible cp-r examples/*/etc/ansible Git方式: git clonegit://github.com/ansible/ansible.git --recursive cd ./ansible source ./hacking/env-setup pipインストール:pipはPythonパッケージをインストールするマネージャで、yum--バージョン
Ansible関連ファイル
プロファイルcfgメインプロファイル、構成ansible動作特性 /etc/ansible/hostsホストリスト /etc/ansible/roles/ロールを格納するディレクトリプログラム /usr/bin/ansibleメインプログラム、一時コマンド実行ツール /usr/bin/ansible-doc構成ドキュメントを表示します.モジュール機能表示ツールインタラクティブな実行ツール
Ansibleホストリストinventory
Inventoryホスト構成表同じホストを複数の異なるグループに同時に集計できます.また、対象ホストがデフォルト以外のSSHポートを使用する場合には、ホスト名の後にコロンとポート番号を用いる、dklwj.com [webservers] www1.dklwj.com:2222 www2.dklwj.com [dbservers] db1.dklwj.com db2.dklwj.com db3.dklwj.comホスト名が類似のネーミングモードに従う場合、リストを使用して各ホスト例を識別することもできる:example.com
[dbsrvs] db-[a:f].example.com
Ansibleプロファイル
Ansibleプロファイル /etc/ansible/ansible.cfg(一般的にはデフォルトのまま)
[defaults]
#inventory = /etc/ansible/hosts #
#library = /usr/share/my_modules/ #
#remote_tmp = $HOME/.ansible/tmp # py
#local_tmp = $HOME/.ansible/tmp #
#forks = 5 #
#sudo_user = root # sudo
#ask_sudo_pass = True # ansible ssh
#ask_pass = True
#remote_port = 22
#host_key_checking = False # host_key,
#log_path=/var/log/ansible.log #
Ansibleシリーズコマンド
ansible ansible-doc ansible-playbook ansible-vault
ansible-console ansible-galaxy ansible-pull
ansible-doc:表示モジュールヘルプ -aすべてのモジュールのドキュメント -lを表示し、--listは使用可能なモジュール -sをリストし、--snippetは指定したモジュールのplaybookクリップの例を表示します: ansible-doc–l すべてのモジュール ansible-doc はすべてのモジュール ansible-doc ping 指定したモジュールのヘルプの使用方法を表示するs ping