Ansible の入門から習得まで [1]

皆さんこんにちは。私は現在、朝9時から夜12時まで運用保守関係の仕事をしています。ブログは蓄積ですので、皆さんも一緒に進めていけたらと思います!
私のホームページ:午前9時から午後12時まで
コラム名:Ansibleの入門から習熟まで、そしてAnsibleのボスになる決意


画像の説明を追加してください

Ansible の概要

AnsibleはPythonをベースに開発されており、多くの運用・保守ツール(puppet、cfengine、chef、func、fabric)の利点を統合し、バッチシステム構成、バッチプログラムデプロイ、バッチ操作コマンドなどの機能を実現します。Ansible アーキテクチャは比較的シンプルで、タスクを実行するには SSH 経由でクライアントに接続するだけで済みます。
Ansible はモジュールに基づいて動作し、バッチでデプロイする機能はありません。実際にバッチ デプロイメントを行うのは、ansible によって実行されるモジュールであり、ansible はフレームワークを提供するだけです。主に以下が含まれます:

(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

環境整備

まず、Ansibleがインストールされているメイン制御マシンとテストマシンの2台を用意する必要があります。

#主控机
yum -y install ansible

Ansible の主なコンポーネント

ANSIBLE PLAYBOOKS: タスク スクリプト (タスク セット)、Ansible タスク セットを定義する構成ファイルを配置し、Ansible (通常はYML ファイル) によって順次実行されます JSON 形式の INVENTORY ; Ansible管理ホスト リスト /etc/anaible/hostsMODULES ; Ansible はコマンドを実行します 関数モジュール、そのほとんどは組み込みのコア モジュールであり、プラグインもカスタマイズできます:; 接続タイプのプラグイン、ループ プラグイン、変数プラグイン、フィルター プラグインなどのモジュール機能の補足、これ関数は一般的には使用されません
API: サードパーティプログラムが呼び出すためのアプリケーション プログラミングインターフェイス
ANSIBLE: INVENTORY、API、MODULES、PLUGINS を組み合わせた緑色のボックスは、コア実行ツールである Ansible コマンドツールとして理解できます

Ansible 設定ファイルの詳細

インベントリホストリスト

Ansible の主な機能は、ホストのバッチで動作することです。ホストの一部を便利に使用するために、それらをグループ化し、インベントリ ファイル内で名前を付けることができます。デフォルトのインベントリ ファイルは /etc/ansible/hosts です。複数のインベントリが存在する場合が
あり
ますファイル、およびそれらを動的インベントリに渡して、/etc/ansible/hosts ファイル形式を動的に生成することもできます
。インベントリ ファイルは INI ファイル スタイルに従い、角括弧内の文字はグループ名です。同じホストを同時に複数の異なるグループにマージできます。また、ターゲット ホストがデフォルト以外の SSH ポートを使用している場合は、ホスト名の後にコロンとポート番号を付けることができます。
例えば

[test]
192.168.100.100
test1.example.com

ホスト名が同じ命名形式に従っている場合は、リストとしてマークすることもできます。

[test]
192.168.100.[1:100]
test[1:100].example.com
test[a:z].example.com

設定ファイル /etc/ansible/ansible.cfg

このファイルは ansible のメイン設定ファイルであり、すべてのコンテンツがその中に定義されています。通常はデフォルトの状態で、通常は **[defaults]** グループ化のみを操作します。

#inventory = /etc/ansible/hosts # 主机列表配置文件
#library = /usr/share/my_modules/ # 库文件存放目录
#remote_tmp = SHOME/.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 #默认使用22端口远程等登录
#host_key_checking = False # 检查对应服务器的host key,建议取消注释
#log_path=/var/log/ansible.log #日志文件

注意すべき点はhost_key_checkingで、これをコメント解除しないと一括パスワードレスログインが実現できません。また、log_path はデフォルトでは記録されませんが、有効にすると、サービスは再起動せずにすぐに有効になります。

Ansibleコマンド実行ソース

USER,普通用户,即SYSTEM ADMINISTRATOR
CMDB (配置管理数据库) API 调用
PUBLIC/PRIVATE CLOUD API调用
USER-> Ansible Plavbook -> Ansibile利用ansible实现管理的方式:
Ad-Hoc 即ansible命令,主要用于临时命令使用场景
Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要有前提的规划

Ansible-Playbookの実行プロセス

将已有排好的任务集写入Ansible-Playbook
通过ansible-playbook命令分拆任务集至逐条ansible命令,按预定规则逐条执行
Ansible主要操作对象 :
HOSTS主机
NETWORKING网络设备
注意事项
执行ansible的主机一般称为主控端,中控,master或堡垒机
主控端Python版本需要2.6或以上
被控端Python版本小于2.4需要安装python-simplejson
被控端如开启SELinux需要安装libselinux-python
windows不能做为主控端

コードワードは簡単ではありません。この記事が少しでも希望になれば、三回応援お願いします。
ご質問がございましたら、メッセージを残して一緒に話し合ってください。ありがとうございます。
下記の公式アカウントにもご注目ください。メッセージを見てすぐに返信いたします。

おすすめ

転載: blog.csdn.net/tootsy_you/article/details/130880780