3、ansible-主机清单(inventory)-主机端口-组:变量-子分组-自定义主机列表
Ansible的主机清单(Inventory)是一个文本文件,其中包含了被管理主机的信息,例如IP地址、主机名、SSH端口号、用户名、密码等等。主机清单的作用是告诉Ansible哪些主机需要进行管理和配置,以及如何连接到这些主机。
主机清单可以包含多个组,每个组可以包含多个主机。通过对主机进行分组,可以更方便地对不同类型的主机进行管理,例如Web服务器、数据库服务器、应用服务器等等。同时,主机清单还可以定义变量,这些变量可以在Playbook中使用,以便更好地进行定制化的管理和配置。
除了静态主机清单,Ansible还支持动态主机清单,这种清单可以根据实际情况动态生成,例如从云平台API获取主机信息,或者从CMDB系统中获取主机信息。动态主机清单可以更好地适应云计算和容器化环境中主机的动态变化。
====================================================================================================================================
1、定义主机组 :在管理机上配置分组 进ansible的主机配置文件
vim /etc/ansible/hosts
2、测试组
ansible webserver -m ping -o // 这里调用的是组 webserver -m 调用一个模块 -o 简介输出
3、在主机清单里 在客户机上加上账户密码
·· vim /etc/ansible/hosts
也可以这样表示、在客户机密码都相同的情况下
改完后都可以ping通了
4、查看ssh 的端口号 使用的是22
··· ss -antp | grep sshd
5、这里我将192.168.177.143 host1 的ssh端口改成2222 测试
··· vim /etc/ssh/sshd_config
··· systemctl restart sshd
改完ping是不通的 ansible webserver -m ping -o 、需要在主机清单里加上客户机的端口号才行如第6步
6、主机清单 的客户就加上远程端口号
···vim /etc/ansible/hosts
=======================================================组:变量==================================================================
组变量就是 将组 和变量分开定义、先定义组、再定义组的变量、前提是组里面的主机信息都要相同(账户、密码、端口等)、如果某一个信息不同的,需要在组里另行定义、、、如下
··· vim /etc/ansible/hosts
以下是主机清单的参数
===========================================================子分组======================================================
将不同的 分组 进行 组合、将不同的分组进行统一管理、就是在控制某一个组的时候同时也控制了归为子分组的组 里的主机
如:
··建议在管理子组的时候,其它主机的账户密码和端口号要一致
··如果在主机清单里定义了ssh主机的账户密码、第一次先要手动去远程连接登录各个主机(如ssh root@host1)才行、不然直接定义后是无法直接通讯的(除非做了ssh-keygen 密钥)
控制多个主机服务
ansible apache,nginx -m service -a 'name=mysqld state=started'
=========================================================自定义主机列表=========================================================
1、创建主机清单列表文件
·· vim hostlist //按照主机清单的格式来添加
[dockers] host1 host2 [dockers:vars] ansible_ssh_user='root' ansible_ssh_pass='taixin120.'
当把此文件拷贝到其它主机上执行的时候 加 -i 文件名 表示调用此文件 如:
ansible -i hostlist dockers -m ping -o //注意 -i后面要加文件所在的路径 dockers是主机的组