運行メンテナンス自動化のANSIBLE(基礎知識)


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