设为首页 加入收藏

TOP

ansible配置文件(三)
2023-07-23 13:37:55 】 浏览:85
Tags:ansible 文件
ansible [主机名/IP] --list-hosts
[root@localhost ~]# ansible web1 --list-hosts
  hosts (1):
    web1

//不存在清单中
[root@localhost ~]# ansible web111111111 --list-hosts
[WARNING]: Could not match supplied host pattern, ignoring: web111111111
[WARNING]: No hosts matched, nothing to do
  hosts (0):

运行以下命令来列出指定组中的所有主机:

ansible [组名称] --list-hosts
[root@localhost ~]# ansible webservers --list-hosts
  hosts (1):
    192.168.111.142

如果清单中含有名称相同的主机和主机组,ansible 命令将显示警告并以主机作为其目标。主机组则被忽略。

应对这种情况的方法有多种,其中最简单的是确保主机组不使用与清单中主机相同的名称。

5.构建Ansible清单

清单内容:

web1

[webservers]
192.168.111.142

[dbservers]
192.168.111.143

使用以下命令列出默认清单文件中的所有受管主机:

[root@localhost ~]# ansible all --list-hosts
  hosts (3):
    web1
    192.168.111.142
    192.168.111.143

使用以下命令列出不属于任何组的受管主机:

[root@localhost ~]# ansible ungrouped --list-hosts
  hosts (1):
    web1

使用以下命令列出属于某组的受管主机:

[root@localhost ~]# ansible dbservers --list-hosts
  hosts (1):
    192.168.111.143

6.自定义清单文件

在清单的位置中已经创建一个名为inventory的自定义静态清单文件。

服务器清单规格

主机IP 用途 位置 运行环境
192.168.111.142 web服务器 武汉 测试
192.168.111.143 web服务器 武汉 生产

编辑/etc/ansible/inventory文件,将上表中所列出的主机加入受管主机序列。

[root@localhost ~]# vim /etc/ansible/ansible.cfg
inventory      = /etc/ansible/inventory			//自定义清单存放位置
[root@localhost ~]# vim /etc/ansible/inventory
[test1]
192.168.111.142 ansible_user=root ansible_password=1	//密码写在配置文件中容易泄露最好别写

[produce]
192.168.111.143

执行以下命令列出所有受管主机:

[root@localhost ~]# ansible all -i /etc/ansible/inventory --list-hosts
  hosts (2):
    192.168.111.142
    192.168.111.143

执行以下命令列出webservers组中的所有受管主机:

[root@localhost ~]# ansible test1 -i /etc/ansible/inventory --list-hosts
  hosts (1):
    192.168.111.142

三、运行临时命令

Ansible运行临时命令的语法如下:

ansible host-pattern -m module [-a 'module arguments'] [-i inventory]

host-pattern参数用于指定在其上运行临时命令的受管主机。它可以是清单中的特定受管主机或主机组。也可以用后面的-i选项指定特定的清单而不使用默认清单。

-m选项将Ansible应在目标主机上运行的module名称作为参数。模块是为了实施任务而执行的小程序。一些模块不需要额外的信息,但其他模块需要使用额外的参数来指定其操作详情。-a选项以带引号字符串形式取这些参数的列表。

一种最简单的临时命令使用ping模块。此模块不执行ICMP ping,而是检查能否在受管主机上运行基于Python的模块。例如,以下临时命令确定清单中的所有受管主机能否运行标准的模块:

[root@localhost ~]# ansible all -m ping
192.168.111.143 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}
192.168.111.142 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}

1.使用临时命令通过模块来执行任务

模块是临时命令用于完成任务的工具。Ansible提供了数百个能够完成不同任务的模块。通常我们可以查找一个经过测试的专用模块,作为标准安装的一部分来完成所需的任务。

ansible-doc -l命令可以列出系统上安装的所有模块

可以使用ansible-doc来按照名称查看特定模块的帮助文档,再查找关于模块将取什么参数作为选项的信息。

例如以下命令显示ping模块的帮助文档,在帮助文档里面输入q命令表示退出:

ansible-doc ping

更多的模块信息请访问在线Ansible文档,网址:

Index of all Modules — Ansible Documentation

Ansible常用模块

模块类别 模块
文件模块 copy:将本地文件复制到受管主机 file:设置文件的权限和其他属性 lineinfile:确保特定行是否在文件中 synchronize:使用rsync同步内容
软件包模块 package:使用操作系统本机的自动检测软件包管理器管理软件包 yum:使用yum管理软件包 apt:使用APT管理软件包 dnf:使用dnf管理软件包 gem:管理Ruby gem pip:从PyPI管理Python软件包
系统模块 firewalld:使用firewalld管理防火墙 reboot:重启计算机 service:管理服务 user:添加、删除和管理用户帐户
Net Tools模块 get_url:通过HTTP、HTTPS或FTP下载文件 n
首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇CentOS8 利用rsyslog日志服务,将.. 下一篇Ansible简介

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目