zabbixシリーズのansibleを使用してzabbixクライアントを一括配置する(二)
ansible
ansibleは新しく登場した自動化メンテナンスツールであり、Pythonに基づいて開発され、多くのメンテナンスツール(puppet、cfengine、chef、func、fabric)の利点を集め、一括システム構成、一括プログラム配置、一括実行コマンドなどの機能を実現した.
ansibleはモジュールベースで動作し、それ自体は一括配置の能力がありません.本当に一括配置があるのはansibleが実行するモジュールで、ansibleはフレームワークを提供するだけです.主な内容は次のとおりです.
(1)、接続プラグインconnection plugins:監視された側と通信を実現する.
(2)、host inventory:操作するホストを指定し、プロファイルに監視を定義するホストである.
(3)、各種モジュールコアモジュール、commandモジュール、カスタムモジュール;
(4)、プラグインによってログメールを記録するなどの機能を完成する.
(5)、playbook:シナリオが複数のタスクを実行する場合、ノードに複数のタスクを一度に実行させる必要はありません.
ansibleの特性:
(1)、no agents:管理対象ホストにクライアントをインストールする必要はありません.
(2)、no server:サーバ側がなく、使用時に直接コマンドを実行すればよい.
(3)、modules in any languages:モジュール作業に基づいて、任意の言語でモジュールを開発することができる.
(4)、yaml、not code:yaml言語でシナリオプレイブックをカスタマイズする;
(5)、ssh by default:SSHベースで動作;
(6)、strong multi-tier solution:マルチレベル指揮を実現できる.
ansibleの利点
(1)、軽量級で、クライアントにagentをインストールする必要がなく、更新する時、操作機で一回の更新を行うだけでよい.
(2)、一括タスク実行はスクリプトとして書くことができ、リモートに配布することなく実行することができる.
(3)、pythonで書くと、メンテナンスが簡単で、ruby文法が複雑すぎる.
(4)、sudoをサポートする.
Ansibleエンタープライズアプリケーション:
主なアーキテクチャ機能:
Ansible Core.//コア機能
Modules:
Core Modules//コア機能
Customed Modules//カスタムモジュール
ホストInventory//ホストライブラリとホストリストで、管理するホストを定義
File
CMDB(構成管理データ)
PlayBooks//シナリオ、ホストが演じていない役を定義します
Hosts.//本体
roles.//キャラクター
Connection Plugins.//プラグインを接続し、管理対象ホストに接続し、同時接続を完了し、デフォルトでは一度に5台管理するが、修正できる.
構築環境(CentOS 7)
環境トポロジー図、図1に示すように
図1
ホスト
ip
ロール#ロール#
centos1
192.168.15.11/24
zabbixサービス側+ansible
centos2
192.168.15.12/24
zabbixクライアント
centos3
192.168.15.13/24
zabbixクライアント
centos4
192.168.15.14/24
zabbixクライアント
環境の構築を開始
1、まず各ホストを配置して、ファイアウォールとselinuxをすべてオフにして、CentOS 7の最小化インストールなので、先にgccをインストールして、zabbixサービス端から各zabbixクライアントまでのssh免鍵通信を配置する必要がある.
2、配置ansible
先にzabbixサービスをインストールする方法を書いたので、ここではansibleの構成だけを書きます.
(1)、ansibleの取り付け
(2)、ホストグループの定義
(3)、図2に示すように各zabbixクライアントにpingが通じるかどうかをテストする
図2
(4)、図3に示すように、修正したhostsファイルをすべてのホストにプッシュする
図3
3、ansibleプッシュでzabbixクライアントをインストールする
あるサービスにプロファイルを提供する場合、プロファイルは異なるホストに対して提供する構成も異なります.具体的には、このホストのプロパティに依存して生成されます.この場合、テンプレートを使用するのが最も効果的です.ここではansibleのjijiaテンプレートを使用してansibleクライアントを配置します.
プロファイルの表示
リモート実行スクリプトの表示
プッシュプロセスを図4に示す
図4
図5に示すようにzabbixクライアントが実行されているかどうかを確認します.
図5
これでansibleを使用してzabbixクライアントを一括インストールすることができます.
注意:
単一zabbixクライアントを導入するスクリプトをインストールするには、次のようにします.
転載先:https://blog.51cto.com/3381847248/2053858
ansibleは新しく登場した自動化メンテナンスツールであり、Pythonに基づいて開発され、多くのメンテナンスツール(puppet、cfengine、chef、func、fabric)の利点を集め、一括システム構成、一括プログラム配置、一括実行コマンドなどの機能を実現した.
ansibleはモジュールベースで動作し、それ自体は一括配置の能力がありません.本当に一括配置があるのはansibleが実行するモジュールで、ansibleはフレームワークを提供するだけです.主な内容は次のとおりです.
(1)、接続プラグインconnection plugins:監視された側と通信を実現する.
(2)、host inventory:操作するホストを指定し、プロファイルに監視を定義するホストである.
(3)、各種モジュールコアモジュール、commandモジュール、カスタムモジュール;
(4)、プラグインによってログメールを記録するなどの機能を完成する.
(5)、playbook:シナリオが複数のタスクを実行する場合、ノードに複数のタスクを一度に実行させる必要はありません.
ansibleの特性:
(1)、no agents:管理対象ホストにクライアントをインストールする必要はありません.
(2)、no server:サーバ側がなく、使用時に直接コマンドを実行すればよい.
(3)、modules in any languages:モジュール作業に基づいて、任意の言語でモジュールを開発することができる.
(4)、yaml、not code:yaml言語でシナリオプレイブックをカスタマイズする;
(5)、ssh by default:SSHベースで動作;
(6)、strong multi-tier solution:マルチレベル指揮を実現できる.
ansibleの利点
(1)、軽量級で、クライアントにagentをインストールする必要がなく、更新する時、操作機で一回の更新を行うだけでよい.
(2)、一括タスク実行はスクリプトとして書くことができ、リモートに配布することなく実行することができる.
(3)、pythonで書くと、メンテナンスが簡単で、ruby文法が複雑すぎる.
(4)、sudoをサポートする.
Ansibleエンタープライズアプリケーション:
主なアーキテクチャ機能:
Ansible Core.//コア機能
Modules:
Core Modules//コア機能
Customed Modules//カスタムモジュール
ホストInventory//ホストライブラリとホストリストで、管理するホストを定義
File
CMDB(構成管理データ)
PlayBooks//シナリオ、ホストが演じていない役を定義します
Hosts.//本体
roles.//キャラクター
Connection Plugins.//プラグインを接続し、管理対象ホストに接続し、同時接続を完了し、デフォルトでは一度に5台管理するが、修正できる.
構築環境(CentOS 7)
環境トポロジー図、図1に示すように
図1
ホスト
ip
ロール#ロール#
centos1
192.168.15.11/24
zabbixサービス側+ansible
centos2
192.168.15.12/24
zabbixクライアント
centos3
192.168.15.13/24
zabbixクライアント
centos4
192.168.15.14/24
zabbixクライアント
環境の構築を開始
1、まず各ホストを配置して、ファイアウォールとselinuxをすべてオフにして、CentOS 7の最小化インストールなので、先にgccをインストールして、zabbixサービス端から各zabbixクライアントまでのssh免鍵通信を配置する必要がある.
## gcc
yum install -y gcc*
## ssh
[root@centos1 ~]# ssh-keygen
[root@centos1 ~]# ssh-copy-id 192.168.15.12
[root@centos1 ~]# ssh-copy-id 192.168.15.13
[root@centos1 ~]# ssh-copy-id 192.168.15.14
2、配置ansible
先にzabbixサービスをインストールする方法を書いたので、ここではansibleの構成だけを書きます.
(1)、ansibleの取り付け
## yum
[root@centos1 ~]# yum install -y ansible
(2)、ホストグループの定義
[root@centos1 ~]# cd /etc/ansible/
[root@centos1 ansible]# ls
ansible.cfg hosts roles
[root@centos1 ansible]# vim hosts
[zabbix_agent]
192.168.15.12
192.168.15.13
192.168.15.14
##
[root@centos1 ansible]# ansible zabbix_agent --list-hosts
hosts (3):
192.168.15.12
192.168.15.13
192.168.15.14
(3)、図2に示すように各zabbixクライアントにpingが通じるかどうかをテストする
図2
(4)、図3に示すように、修正したhostsファイルをすべてのホストにプッシュする
[root@centos1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.15.11 centos1
192.168.15.12 centos2
192.168.15.13 centos3
192.168.15.14 centos4
図3
3、ansibleプッシュでzabbixクライアントをインストールする
あるサービスにプロファイルを提供する場合、プロファイルは異なるホストに対して提供する構成も異なります.具体的には、このホストのプロパティに依存して生成されます.この場合、テンプレートを使用するのが最も効果的です.ここではansibleのjijiaテンプレートを使用してansibleクライアントを配置します.
プロファイルの表示
[root@centos1 ~]# cd /etc/ansible/
[root@centos1 ansible]# cat zabbix_agent.yaml
- hosts: zabbix_agent
remote_user: root
tasks:
- name: install zabbix_agent packages
yum: name={
{ item }} state=latest
with_items:
- curl-devel
- name: copy install_shell to clien
copy: src=/etc/ansible/zabbix_agent.sh dest=/usr/local/src/zabbix_agent.sh
- name: sent tar
copy: src=/usr/local/src/zabbix-3.2.7.tar.gz dest=/usr/local/src/zabbix-3.2.7.tar.gz
notify: install shell
handlers:
- name: install shell
shell: /bin/bash /usr/local/src/zabbix_agent.sh
リモート実行スクリプトの表示
[root@centos1 ansible]# cat zabbix_agent.sh
#!/bin/bash
useradd zabbix -s /sbin/nologin
cd /usr/local/src
tar -xf zabbix-3.2.7.tar.gz
cd zabbix-3.2.7
./configure --with-net-snmp --with-libcurl --enable-agent --prefix=/usr/local/zabbix
make && make install
cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
chmod 700 /etc/init.d/zabbix_agentd
sed -i 's\ZABBIX_BIN="/usr/local/sbin/zabbix_agentd\ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd\g' /etc/init.d/zabbix_agentd
sed -i 's\Server=127.0.0.1\Server=192.168.15.11\g' /usr/local/zabbix/etc/zabbix_agentd.conf
/etc/init.d/zabbix_agentd start
chkconfig zabbix_agentd on
プッシュプロセスを図4に示す
図4
図5に示すようにzabbixクライアントが実行されているかどうかを確認します.
図5
これでansibleを使用してzabbixクライアントを一括インストールすることができます.
注意:
単一zabbixクライアントを導入するスクリプトをインストールするには、次のようにします.
[root@centos1 ~]# cat zabbix_agent.sh
#!/bin/bash
yum install -y gcc* ## gcc
yum install -y curl-devel ##
useradd zabbix -s /sbin/nologin ##
##
cd /usr/local/src/
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.7/zabbix-3.2.7.tar.gz
tar -xf zabbix-3.2.7.tar.gz
##
cd zabbix-3.2.7
./configure --with-net-snmp --with-libcurl --enable-agent --prefix=/usr/local/zabbix
make && make install
##
cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
chmod 700 /etc/init.d/zabbix_agentd
sed -i 's\ZABBIX_BIN="/usr/local/sbin/zabbix_agentd\ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd\g' /etc/init.d/zabbix_agentd
sed -i 's\Server=127.0.0.1\Server=192.168.15.11\g' /usr/local/zabbix/etc/zabbix_agentd.conf
/etc/init.d/zabbix_agentd start ##
chkconfig zabbix_agentd on ##
転載先:https://blog.51cto.com/3381847248/2053858