分类: 开发

478 篇文章

043、lookups插件
lookups插件 1. 概述 我们在debug调试模块中使用了多种方式定义变量,但这些变量的定义大部分是静态的,其实Ansible支持从外部数据拉取信息,比如从数据库里面读取信息然后定义给一个变量,这时候就可以使用lookups插件。 lookups插件,官方文档 Lookups。 Lookup plugins 官方文档 Lookup plugins。 1.1 查看lookups可用查看列表 如…
042、filter过滤器
filter过滤器 1. 过滤器概述 Ansible有非常多的过滤器,详细可参考:Filter Plugins Ansible使用Jinja2标准过滤器,并增加了一些Ansible特有的过滤器,可参考Filter plugins,你也可以自定义过滤器,请参考create custom Ansible filters as plugins。 Jinja2内置过滤器也有很多,详细可参考List of …
041、tags标签
tags标签 1. 概述 如果你有一个超大的playbook剧本文件,有时并不想运行剧本文件中所有的任务,这个时候tags标签可以解决这个问题,通过tags标签可以运行或者忽略(execute or skip)剧本中的部分任务。 你需要给任务添加标签,然后在运行剧本时选项相应的标签。 详细可参考官方文档 Tags 2. 官方示例 你可以给任务添加一个或多个标签。 你可以在剧本中添加标签,也可以在t…
040、handlers触发器
handlers触发器 0. 场景引入 我们在 lineinfile文件内容修改模块 模块中曾经向nginx配置文件最后写入了三行无意义的备注信息: [root@node1 ~]# tail -n 3 /etc/nginx/nginx.conf # Orange # Apple # Banana [root@node1 ~]# 本节我们尝试将三行无意义的备注信息去掉,然后再重启Nginx服务,编写…
039、ansible-vault数据加密
ansible-vault数据加密 1. 概述 Ansible Vault对变量和文件进行加密,这样您就可以保护密码或密钥等敏感内容,而不是将其作为明文显示在剧本或角色中。然后你可以将加密后的内容上传到版本管理仓库中,而不用担心密码泄露。 官方文档:Ansible Vault。 命令行参数说明ansible-vault。 简单来说,对于密码之类的敏感信息,可以使用ansible-vault加密后,…
038、ansible loop循环
ansible loop循环 1. 概述 ansible循环官方文档 Loops ansible提供loop、with_<lookup>、until等关键字来多次执行任务。 ansible在2.5版本中引入了loop循环,它尚未完全替代 with_<lookup>,但ansible官方建议在大多数用例中使用它。 ansible并没有废弃with_<lookup>…
037、changed_when与failed_when条件判断
changed_when与failed_when条件判断 1. 概述 与when条件语句类似,我们可以使用changed_when语句和failed_when语句来对命令运行的结果进行判断。对于Ansible来说,其很难判断一个命令的运行是否符合我们的实际预期,尤其是当我们使用command模块和shell模块时,如果不使用changed_when语句,Ansible将永远返回changed。大部…
036、when条件判断
when条件判断 1. 官方示例 when条件判断,可参考官方文档 Conditionals 以下是官方示例中的几个示例: 1.1 判断操作系统 判断操作系统是否是Debian: tasks: - name: Shut down Debian flavored systems ansible.builtin.command: /sbin/shutdown -t now when: ansible_…
035、unarchive模块
unarchive模块 1. 概要 unarchive模块用于对归档文件进行解压。 默认情况下,它会在解包之前将源文件从本地系统复制到目标系统。 如果设置remote_src=yes则表示解压远程主机上面的归档文件。 如果需要校验文件,请使用get_urlhttps://docs.ansible.com/ansible/2.9/modules/get_url_module.html#get-url…
034、wait_for_connection等待远程主机连接模块
wait_for_connection等待远程主机连接模块 1. 概要 wait_for_connection模块,会等待远程系统,确定其是否可访问。 Ansible会等待timeout设定的超时时间。 在connect_timeout设定的连接超时时间后,重试传输连接。 sleep参数指定每睡眠几秒钟测试一次传输连接。 该模块利用内部可安全传输(和配置)和ping模块来保证正确的端到端功能。 官…