自动化运维工具(二)——ansible模块&palybook的使用

本文详细介绍了Ansible的核心模块,包括主机连通性测试、command、shell、copy、file、fetch、cron、yum、service及script模块的使用。此外,还深入讲解了playbook,涵盖其核心元素、运行方式、使用示例和template模块的应用,为自动化运维提供指导。
摘要由CSDN通过智能技术生成

目录

一:ansible核心模块

1、主机连通性测试

2、command模块

3、shell模块

4、copy模块

5、file模块

6、fetch模块

7、cron模块

8、yum模块

9、service模块

10、script

二:playbook

1、playbook的核心元素

2、playbook运行方式

3、使用

4、template模块


一:ansible核心模块

1、主机连通性测试

我们使用ansible xxx -m ping命令来进行主机连通性测试(xxx是主机的组名),效果如下:

[root@kafka-1 ansible]# vim /etc/ansible/hosts

# Ex 2: A collection of hosts belonging to the 'webservers' group

[webservers]           #webservers为xxx
## alpha.example.org
## beta.example.org
## 192.168.1.100
## 192.168.1.110
192.168.149.152
192.168.149.153

[root@kafka-1 ansible]# ansible webservers -m ping
192.168.149.152 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.149.153 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

2、command模块

command模块可以直接在远程主机上执行命令,并将结果返回主机。如下:

[root@kafka-1 ansible]# ansible webservers -m command -a "ip a"
192.168.149.152 | CHANGED | rc=0 >>
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:75:96:ae brd ff:ff:ff:ff:ff:ff
    inet 192.168.149.152/24 brd 192.168.149.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7f6a:2f24:7ab1:fd87/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
192.168.149.153 | CHANGED | rc=0 >>
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:bf:e4:78 brd ff:ff:ff:ff:ff:ff
    inet 192.168.149.153/24 brd 192.168.149.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::a92b:91d7:cb23:cb92/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

在远程主机上执行命令,属于裸执行,非键值对显示;不进行shell解析、 不会解析它的管道符号  会认为ifconfig|grep 是一个命令。该模块还有如下几个命令:

chdir       # 在执行命令之前,先切换到该目录
executable # 切换shell来执行命令,需要使用命令的绝对路径
free_form   # 要执行的Linux指令,一般使用Ansible的-a参数代替。
creates  # 一个文件名,当这个文件存在,则该命令不执行,可以
用来做判断
removes # 一个文件名,这个文件不存在,则该命令不执行

[root@kafka-1 ansible]# ansible webservers -m command -a "chdir=/opt/ ls"
192.168.149.153 | CHANGED | rc=0 >>
apache-zookeeper-3.6.3-bin
apache-zookeeper-3.6.3-bin.tar.gz
dist
dist1
kafka_2.12-2.8.1
kafka_2.12-2.8.1.tgz
192.168.149.152 | CHANGED | rc=0 >>
apache-zookeeper-3.6.3-bin
apache-zookeeper-3.6.3-bin.tar.gz
celery_task
dist
dist1
kafka_2.12-2.8.1
kafka_2.12-2.8.1.tgz

3、shell模块

shell模块可以在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道等。

[root@kafka-1 ansible]# ansible webservers -m shell -a "cat /etc/passwd|grep bash"
192.168.149.152 | CHANGED | rc=0 >>
root:x:0:0:root:/root:/bin/bash
192.168.149.153 | CHANGED | rc=0 >>
root:x:0:0:root:/root:/bin/bash

只要是我们的shell命令,都可以通过这个模块在远程主机上运行。

4、copy模块

这个模块用于将文件复制到远程主机,同时支持给定内容生成文件和修改权限。其相关选项如下:

src    #被复制到远程主机的本地文件。可以是绝对路径,也可以是相对路径。如果路径是一个目录,则会递归复制,用法类似于"rsync"
content   #用于替换"src",可以直接指定文件的值
dest    #必选项,将源文件复制到的远程主机的绝对路径
backup   #当文件内容发生改变后,在覆盖之前把源文件备份,备份文件包含时间信息
directory_mode    #递归设定目录的权限,默认为系统默认权限
force    #当目标主机包含该文件,但内容不同时,设为"yes",表示强制覆盖;设为"no",表示目标主机的目标位置不存在该文件才复制。默认为"yes"
others    #所有的 file 模块中的选项可以在这里使用

注意:#####src目录后面带/和不带/的区别
      #带/ 表示拷贝目录下的子文件或者子文件夹
      #不带/  表示拷贝整个目录

带/---同时如果目的主机没有文件夹,会被新建
[root@kafka-1 lianxi]# ansible webservers -m copy -a "src=/lianxi/ dest=/lianxi1"
192.168.149.152 | CHANGED => {
    "changed": true, 
    "dest": "/lianxi1/", 
    "sr
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动化运维工具——ansible是一款开源的IT自动化工具,广泛应用于软件部署、配置管理和任务协同等领域。它的最大特点是简单易用、功能强大且跨平台。 首先,ansible具有简单易用的特点。它使用简单的YAML语言作为配置文件,无需编写复杂的脚本。用户只需要简单地定义主机和操作即可完成任务的执行。这使得即便是非开发人员,也能轻松上手使用ansible进行自动化管理。 其次,ansible功能强大。它支持广泛的操作系统、云平台和网络设备,并提供了丰富的模块化功能。通过在任务中使用ansible模块,我们可以实现系统配置、软件安装、文件传输等各种常见操作。此外,ansible不仅支持并发执行任务,还能够将任务分组执行,并提供了强大的变量和条件控制功能。 再次,ansible跨平台。无论是在Linux、Unix还是Windows系统上,ansible都能够良好地运行。此外,它还支持云平台,如AWS、Azure等,以及网络设备,如Cisco、Juniper等。这使得ansible成为一个非常灵活的自动化运维工具,能够满足各种不同环境和需求的自动化管理。 最后,ansible还具有良好的社区支持。ansible拥有庞大的用户社区和活跃的开发者社区,有大量的文档、示例和插件可供参考和使用。这使得我们在使用ansible时能够获得快速解答和支持,同时也能够从社区中学习到更多的技巧和经验。 总而言之,ansible是一款简单易用、功能强大且跨平台的自动化运维工具。它在软件部署、配置管理和任务协同等方面具有广泛的应用,并且得到了良好的社区支持。无论是企业还是个人,都可以通过ansible来提高工作效率和自动化管理水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值