变量定义 - 判断文件是否存在 - debug 技巧 - 判断变量类型 + ignore_errors
1.访问变量文件
--- - hosts: frame remote_user: root gather_facts: no vars_files: - /testdir/ansible/testfile.txt tasks: - debug: msg: "{{key_1}}"
变量文件:
[root@frontend-1 mytestvar]# cat /testdir/ansible/testfile.txt key_1: values_1
2.判断文件是否存在
--- - hosts: frame tasks: - name: check wheather file exist shell: ls /etc/hosts register: ls_result - name: when last step succeed , echo ok into file /tmp/1025/hosts shell: echo 'ok' > /tmp/1025/hosts when: ls_result.rc == 0
3.把变量的信息输出
-name: test
shell: echo 'hello world'
- debug: var=PermitRootLogin
TASK [debug] ********************************************************************************************************************************************************************************** ok: [10.0.0.4] => { "PermitRootLogin": { "changed": true, "cmd": "egrep 'PermitRootLogin yes' /etc/ssh/sshd_config|wc -l", "delta": "0:00:00.052518", "end": "2020-11-01 00:05:11.867289", "failed": false, "rc": 0, "start": "2020-11-01 00:05:11.814771", "stderr": "", "stderr_lines": [], "stdout": "1", "stdout_lines": [ "1" ] } }
4. cat a.j2
{{ PermitRootLogin['stdout_lines'][0]|type_debug }}
5.ignore_errors
- hosts: web_servers tasks: - name: Run a shell command and register its output as a variable ansible.builtin.shell: /usr/bin/foo register: foo_result ignore_errors: true - name: Run a shell command using output of the previous task ansible.builtin.shell: /usr/bin/bar when: foo_result.rc == 5
用一个例子来演示会更加清晰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App