NH.A.0004——Ansibleの20モジュールの説明とPlaybookスクリプト分析

1.概要:1。Ansible自動操作および保守ツールの
概要と機能分析
2.Ansible自動操作および保守ツールの原則と少し深い理解
3.Ansibleモジュールエンタープライズ実際の戦闘ツールとコマンド演習
4.Ansible自動操作および保守ツールプレイブックアプリケーション実際の戦闘
5.詳細な説明Ansible構成ファイルと高度なパフォーマンスチューニング
ここに写真の説明を挿入

Linuxクラウドコンピューティングエンジニアの3つのコア機能:
ここに写真の説明を挿入
プラットフォームアーキテクチャの形成:アーキテクチャ設計の合理性への参加とレビュー、運用および保守プラットフォーム管理アーキテクチャの構築、およびオープンソースソリューションの使用による、製品のリリース後の効率的で安定した運用の保証、継続サービスの可用性を向上させ、ユーザーデータのセキュリティを確保し、ユーザーエクスペリエンスを向上させます。
日常の運用保証:運用保守技術または運用保守プラットフォームを使用して、製品のリリースと起動を効率的に行い、7 * 24時間の安定した運用を保証します。この期間中、問題を迅速に特定して解決し、日常業務を行うことができます。システムアーキテクチャと展開の合理性を最適化して、システムサービスの安定性を向上させ、
パフォーマンスと効率最適化します。自動化ツールまたは運用および保守プラットフォームを使用して、開発サイクルにおけるソフトウェアエンジニアリングの効率を向上させ、システムアーキテクチャを継続的に最適化し、展開効率を向上させ、リソース使用率を最適化します。製品の継続的な反復をサポートするには、アーキテクチャを継続的に最適化および調整して、製品全体が機能の点で豊富で複雑であり続け、高い可用性を確保できるようにする必要があります。
Ansibleとは:
Ansibleは単なる構成管理システム(構成管理システム)であり、サーバーまたは機器にアクセスするにはsshを使用するだけで済みます。また、パペットなどの代わりにプッシュ方式を使用している点も他のツールとは異なります。このようにして、エージェントをプルしてインストールする方法を使用して、コードを任意の数のサーバーにデプロイできます。
Ansibleでできること:
Ansibleは、いくつかのバッチタスクを完了したり、頻繁に繰り返す必要のあるいくつかの一般的なタスクを完了したりするのに役立ち
ます。たとえば、100台のサーバーに同時にnginxサービスをインストールし、インストール後に開始します。たとえば
、特定のファイルを一度に配置します。100台のサーバーにコピーします。たとえば
、新しいサーバーが作業環境に追加されるたびに、新しいサーバーのサービスを展開する必要があります。つまり、同じ作業を頻繁に繰り返す必要があります。
これらのシナリオでAnsibleを使用できます

Ansibleアーキテクチャ:
ここに写真の説明を挿入右側緑色は、管理対象ホスト(仮想マシン、物理マシン、クラウドホストなど)です。上のアーキテクチャ図から、Ansibleはホストリスト(構成)、プレイブック(構成)、およびさまざまなモジュールプラグインで構成されていることがわかります。簡単に言うと、ユーザー(管理者)は、Ansibleのホストリスト構成またはプレイブック構成(一連のタスク)を介してAnsibleのさまざまなモジュールとパラメーターを呼び出し、リスト内のホストの統合管理を実行します。

Ansibleは、Linux、BSD、Mac OS、およびその他のプラットフォームで動作します。Python環境バージョンの最小要件はPython2.6以降です。オペレーティングシステムのPythonソフトウェアバージョンが2.4の場合、Ansibleツールを使用するにはアップグレードする必要があります。

構成Ansibleの実際の戦闘:
1。ハードウェア環境:
Ansible-server end:192.168.1.60
Ansible-client end:192.168.1.70
Ansible-client end:192.168.1.71
Ansible-client end:192.168.1.72

インストール方法:
ソースインストール、pip、yumインストール;
Centos Red Hatオペレーティングシステムは、YUMツールに基づいてAnsibleを直接自動的にインストールできます。Centos6.xまたはCentos7.xをインストールする前に、epel拡張ソースをインストールする必要があります。コードは次のとおりです。

2.環境への設置:

[root@localhost ~]# yum -y install epel-release   //安装扩展源
[root@localhost ~]# yum install -y ansible
 (11/15): ansible-2.9.14-1.el7.noarch.rpm    
[root@localhost ~]# ansible --version    //查看它的版本
ansible 2.9.14 
python version = 2.7.5 
[root@localhost ~]# ll /etc/ansible/     //可以查看到它的配置文件
-rw-r--r-- 1 root root 19985 10月  8 01:35 ansible.cfg        //此文件为Ansible的主配置文件
-rw-r--r-- 1 root root  1016 10月  8 01:35 hosts              //定义主机组的
drwxr-xr-x 2 root root     6 10月  8 01:35 roles              //定义不同角色

Ansibleホストリスト:
実行コマンドがAd-Hocを介して完了し、複数のポイントツーポイントの単一実行コマンドをすばやく実行でき、実行されたコマンドを保存する必要がないAnsibleリモートバッチ管理。デフォルトのホストファイルでホストリストが構成され、グループを構成できます。さまざまなIPとルールを定義でき、ホストリストはデフォルトで構成されています。

[root@localhost ansible]# cat hosts |more    //查看Ansible主机清单
[root@localhost ansible]# vim hosts 
# them like this:
[web]                   //定义了一个组名
192.168.1.[70:72]       //定义了组内的主机、 70/71/72主机
[web]                   //或者这样定义也可以
192.168.1.70
192.168.1.71
192.168.1.72

pingモジュールの戦闘:
Ansible最も基本的なモジュールはpingモジュールです。これは主に、クライアントがオンラインかどうかを判断するために使用されます。ping自体のサーバーを使用し、FanHuは変更されたpingを指します。

//ansible web -m ping  //使用Ansible对web组内的主机进行ping模块测试
[root@localhost ansible]# ansible web -m ping
Are you sure you want to continue connecting (yes/no)?      //提示没有配置秘钥对,解决方案针对问题一
[root@localhost ~]# ansible web -m ping
192.168.1.70 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.1.72 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.1.71 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}

コマンドモジュール:
AnsibleコマンドモジュールはデフォルトのAnsibleモジュールであり、主にlinuxコマンドの実行に使用され、リモートサーバーやタスク操作などを直接管理できます。

[root@localhost ~]# ansible web -m command -a "date"
192.168.1.71 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
192.168.1.70 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
192.168.1.72 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
[root@localhost ~]# ansible web -m command -a "ping -c 1 www.baidu.com" 
[root@localhost ~]# ansible web -m command -a "yum install httpd -y"
[root@localhost ~]# ansible web -m command -a "systemctl start httpd.service"
[root@localhost ~]# ansible web -m command -a "ss -tan"     //查看端口
Ansible Playbook应用:
Playbook由一个或多个“paly”组成的列表,play的主要功能Ansible中的Task定义好的角色,指定剧本对应的服务器组;
远程安装nginx服务器脚本;playbook代码如下;
vim nginx_install.yaml
---         //脚本内容;
-host:web
 remote_user:root
 tasks:
 -name:cvc Pcre-devel and Zlib LIB Install.
  yum:name=pcre-devel,pcre,zlib-devel,gcc-c++ state=installed
 -name:cvc Nginx WEB Server Install Process.
 shell:cd /tmp;rm -rf nginx-1.15.0.tar.gz;wget
http://nginx.org/download/nginx-1.15.0.tar.gz;tar xzf nginx-1.15.0.tar.gz;cd nginx-1.15.0;./configure --prefix=/usr/local/nginx;make,make isntall

[root@localhost ~]# ansible-playbook nginx_install.yam1 -vvv   //执行脚本在三台主机上部署nginx

質問1:

[root@localhost ansible]# ansible web -m ping
The authenticity of host '192.168.1.71 (192.168.1.71)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)? The authenticity of host '192.168.1.72 (192.168.1.72)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)? The authenticity of host '192.168.1.70 (192.168.1.70)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)?
错误提示:没有和远程主机配置秘钥对,可以使用ssh-keygen配置秘钥对
解决方案:免秘钥的
[root@localhost ~]# ssh-keygen
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub   -p 22 [email protected]  //将秘钥对拷贝到目标主机。
[root@localhost ~]# ssh 192.168.1.70        //测试目标配置是否成功
Last login: Sun Nov  1 06:29:29 2020 from 192.168.1.101
[root@cb687a8072d1 ~]# ip addr

おすすめ

転載: blog.51cto.com/15005403/2552215