ansible剧本记录

本文详细介绍了Ansible的参数配置及模块使用,包括如何通过unarchive模块进行解压缩操作,如何利用template模块处理模板文件,以及如何运用import_playbook进行剧本引用。同时,深入讲解了wait_for模块的功能,如端口监听、文件状态检查等,适用于自动化运维场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参数记录

ansible-playbook -i test_hosts  -e "@./vars/env.yaml"  -C test.yaml

-i 执行hosts配置文件

-e 指定环境变量文件

-C测试执行剧本执行是否成功(并不会真正在远程机器执行,初步测试剧本是否有问题)

模块学习:

unarchive:

功能:解压缩

unarchive: src=*.tar.gz dest=path

参数:

copy:默认为yes,当copy=yes,那么拷贝的文件是从ansible主机复制到远程主机上的,如果设置为copy=no,那么会在远程主机上寻找src源文件

src:源路径,可以是ansible主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需要设置copy=no

dest:远程主机上的目标路径

mode:设置解压缩后的文件权限

template:

- name: test templates
  template: src={{AnsibleDir}}/templates/config.properties dest={{bpath}}

config.properties里面的变量参数会根据指定的变量文件里面的

- import_playbook: 

- import_playbook: yum.yaml
- import_playbook: uninstall.yaml

单个剧本里面引用多个剧本

wait_for

当你利用service 启动tomcat,或数据库后,他们真的启来了么?这个你是否想确认下? 
wait_for模块就是干这个的。等待一个事情发生,然后继续。它可以等待某个端口被占用,然后再做下面的事情,也可以在一定时间超时后做另外的事。

 

connect_timeout
连接的超时时间,默认是5秒。
delay
开始轮询之前等待的秒数,默认是0。
exclude_hosts
与state=drained一起使用。用于指定,在寻找活跃的TCP链接的时候,要忽略的主机或IP列表。
host
要等待的 可解析的主机名 或 IP地址。
path
在继续之前,文件系统上必须存在的文件的路径。
port
要轮询的端口。
search_regex
用于匹配文件或socket链接中的一个字符串。
state
可以是present、started、stopped、absent、drained。
当检查端口的时候,started会确保端口打开;stopped会确保端口关闭;drained会检查活跃的链接。
当检查文件或搜索字符串的时候,present和started会确保文件或字符串存在。absent会确保文件不存在或被移除。
(Choices: present, started, stopped, absent, drained)[Default: started]
timeout
等待的超时时间。默认是300秒。

wait_for: port:8000 delay=10
等待8000端口打开,每10秒检查一次。超时时间是300秒。
wait_for: host=0.0.0.0 port=8000 delay=10 state=drained
等待所有本地IP上的8000端口,关闭活跃连接。每10秒检查一次,超时时间是300秒。
wait_for: host=0.0.0.0 port=8000 state=drained exclude_hosts=10.2.1.2,10.2.1.3
等待所有本地IP上的8000端口,关闭活跃的连接。忽略来自10.2.1.2和10.2.1.3上的连接。超时时间是300秒。
wait_for: path=/tmp/foo
一直等到/tmp/foo这个文件存在。
wait_for: path=/tmp/foo search_regex=completed
一直等到字符串completed出现在文件/tmp/foo中。
wait_for: path=/var/lock/file.lock state=absent
一直等到lock文件被删除。
wait_for: path=/proc/3466/status state=absent
一直等到进程结束,并且pid被销毁。
local_action: wait_for port=22 host="{{ ansible_ssh_host | default(inventory_hostname) }}" search_regex=OpenSSH delay=10
等待22端口被打开,并且包含字符串OpenSSH。并且不确保inventory_hostname是可解析的。每10秒检查一次,超时时间是300秒

 wait_for: port={{ tomcatport }} delay=3 state=started timeout=10

roles

cd /etc/ansible/roles
    mkdir {nfs-server,nfs-client}   --- 创建相应角色目录
    mkdir {nfs-server,nfs-client}/{vars,tasks,templates,handlers,files}  --- 创建角色目录下面的子目录
    [root@m01 roles]# tree 
    .
    ├── nfs-server
    │   ├── files       --- 保存需要分发文件目录 
    │   ├── handlers    --- 保存触发器配置文件信息
    │   ├── tasks       --- 保存要执行的动作信息文件   ok
    │   ├── templates   --- 保存需要分发模板文件 模板文件中可以设置变量信息
    │   └── vars        --- 保存变量信息文件
    └── nfs-client
        ├── files
        ├── handlers
        ├── tasks
        ├── templates
        └── vars

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值