Ansible(3):ansible资源清单管理

Ansible(3):ansible资源清单管理

https://www.cnblogs.com/lmx1002/p/8339993.html

Inventory文件通常用于定义要管理的主机的认证信息,例如ssh登录用户名、密码以及key相关信息。可以同时操作一个组的多台主机,组与主机组之间的关系都是通过inventory文件配置。配置文件路径为:/etc/ansible/hosts

实际使用的时候可以编写多个Inventory文件,使用的时候用-i参数临时指定就行。

这个文件不仅可以自己编写、编写多个。配置的时候不光可以使用本地的资源,也可以使用云端的资源。

 

inventory常用参数配置:

    ansible_ssh_host                    # 目标主机地址
    ansible_ssh_port                    # 目标主机端口,默认22
    ansible_ssh_user                    # 目标主机用户
    ansible_ssh_pass                    # 目标主机ssh密码
    ansible_sudo_pass                   # sudo密码
    ansible_sudo_exe                    #定义sudo路径
    ansible_connection                  # 与主机的连接类型,比如:local,ssh或者paramiko
    ansible_ssh_private_key_file        # 私钥地址
    ansible_shell_type                 # 目标系统的shell类型
    ansible_python_interpreter         # python版本

 

 

 

 

主机:

1、支持主机名通配以及正则表达式,例如web[1-3].wangxu.com

2、支持基于非标准的ssh端口,例如web.wangxu.com:6666

3、支持指定变量,对于个别主机的特殊配置,如登陆用户,密码等。

 

基于密码

#方式一、主机+端口+密码 
[webservers]  
172.16.1.7 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=‘123456' 
172.16.1.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=‘123456' 
 
#方式二、主机+端口+密码[webservers] 
 web[1:2].wangxu.com ansible_ssh_pass=‘123456' 
 
#方式三、主机+端口+密码 
 [webservers] 
 web[1:2].wangxu.com  
 [webservers:vars] ansible_ssh_pass='123456' 

 

基于密钥连接,需要先创建公钥和私钥,并下发公钥至被控端

[root@blog ~]# #ssh-keygen 
[root@blog ~]# # ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.7 
[root@m01 ~]# cat hosts 
#方式一、主机+端口+密钥 
[webservers]  
172.16.1.7 
172.16.1.8 
#列出所有主机
[admin@pe-jira ~]$ ansible all --list-hosts
  hosts (8):
    10.6.76.23
    10.6.76.24
    10.6.76.25
    10.6.76.26
    10.6.75.171
    10.6.75.172
    10.6.75.175
    10.6.75.176
[admin@pe-jira ~]$ ansible all -m shell -a 'hostname'
10.6.75.171 | CHANGED | rc=0 >>
ris-1

10.6.76.26 | CHANGED | rc=0 >>
k8s-master

10.6.76.23 | CHANGED | rc=0 >>
k8s-node-1

10.6.76.24 | CHANGED | rc=0 >>
k8s-node-2

10.6.76.25 | CHANGED | rc=0 >>
k8s-node-3

10.6.75.172 | CHANGED | rc=0 >>
ris-2

10.6.75.175 | CHANGED | rc=0 >>
mall-1

10.6.75.176 | CHANGED | rc=0 >>
mall-2

[admin@pe-jira ~]$

 

 

 

主机组:

1、支持嵌套组,例如[wangxu:test],那么在wangxu模块下的组,都会被test包含

2、支持指定变量,例如[wangxu:vars]在下面指定变量

 

[wangxu]
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
[wangxu:vars]   #相当于为所有成员做一个变量
ansible_ssh_pass=’123456’


[lbservers] 
172.16.1.5 
172.16.1.6 
 
[webservers] 
172.16.1.7 
172.16.1.8 
 
[servers:children] 
[lbservers] 
[webserver] 
[admin@pe-jira ~]$ sudo tail -20 /etc/ansible/hosts

## db-[99:101]-node.example.com
[test]
10.6.76.23
10.6.76.24
10.6.76.25
10.6.76.26

[ris]
10.6.75.171
10.6.75.172

[mall]
10.6.75.175
10.6.75.176

[wangxu:children]
test
ris
mall
[admin@pe-jira ~]$ ansible ris -m shell -a 'uptime'
10.6.75.172 | CHANGED | rc=0 >>
 21:52:56 up 678 days, 23:41,  1 user,  load average: 0.00, 0.01, 0.05

10.6.75.171 | CHANGED | rc=0 >>
 21:52:56 up 678 days, 23:42,  1 user,  load average: 0.00, 0.01, 0.05

[admin@pe-jira ~]$ ansible wangxu -m shell -a 'uptime'
10.6.75.171 | CHANGED | rc=0 >>
 21:53:02 up 678 days, 23:42,  1 user,  load average: 0.00, 0.01, 0.05

10.6.76.23 | CHANGED | rc=0 >>
 21:53:02 up 36 days,  1:12,  1 user,  load average: 5.60, 5.23, 5.24

10.6.76.26 | CHANGED | rc=0 >>
 21:53:02 up 103 days,  6:03,  1 user,  load average: 1.60, 1.70, 1.81

10.6.76.24 | CHANGED | rc=0 >>
 21:53:02 up 36 days,  1:41,  1 user,  load average: 3.33, 3.77, 3.31

10.6.76.25 | CHANGED | rc=0 >>
 21:53:02 up 36 days,  1:10,  1 user,  load average: 0.30, 0.21, 0.21

10.6.75.172 | CHANGED | rc=0 >>
 21:53:03 up 678 days, 23:42,  1 user,  load average: 0.00, 0.01, 0.05

10.6.75.175 | CHANGED | rc=0 >>
 21:53:03 up 678 days, 23:41,  1 user,  load average: 0.12, 0.06, 0.06

10.6.75.176 | CHANGED | rc=0 >>
 21:53:03 up 678 days, 23:41,  1 user,  load average: 0.00, 0.04, 0.05

[admin@pe-jira ~]$

 

posted on 2020-02-16 21:54  光阴8023  阅读(306)  评论(0编辑  收藏  举报