momo's Blog.

Ansible 使用笔记

字数统计: 349阅读时长: 1 min
2021/12/14 Share

前言

此处写一些ansible常用的一些笔记, 省的以后太久没有去写还要去看顺序翻官方文档

变量

facts 变量

官方文档

获取方法

1
ansible 127.0.0.1 -m setup

注意事项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"172.26.132.142",
"172.26.132.63"
],
"ansible_all_ipv6_addresses": [
"fe80::aede:48ff:fe00:1122%en7",
"fe80::18e1:91d6:70e2:7b2a%en0",
"fe80::18f0:7cff:feb5:653c%awdl0",
"fe80::18f0:7cff:feb5:653c%llw0",
"fe80::ede2:b6fe:2f13:9bcd%utun0",
"fe80::9890:8e1e:9eb4:281f%utun1",
"fe80::ce81:b1c:bd2c:69e%utun2",
"fe80::1cdc:a9e2:852:9e82%en5"
]
}

变量的名称已 ansible_ 开头, 有以下两种使用方式

  • 直接获取顶级变量ansible_all_ipv4_addresses[0]
  • 通过ansible_facts获取 ansible_facts.ipv4_addresses[0]

注意上方两个获取方法,前缀的使用。

变量的命名

注意 -线不可以使用, 请以下划线代替_

注册变量

官方文档

使用技巧: 当任务失败的时候

1
2
3
4
- name: install | already installed gitlab-runner. last few step will be ignore.
debug:
msg: "gitlab-runner: Init already exists."
when: "'Init already exists' in install_result.stderr"

注意:

1
when是拿你给定的字符串,加上 {% your given str  %} 拼接以后交给jinja2执行的, 所以,在写的时候只需要填字符串就行,不需要使用`{{  }}`包裹变量。

还有一点, 注意 register 的变量, 有 stderr, stdout之类的字段,注意不要直接拿变量名做判断。

模块

官方文档

Handlers

官方文档

处理错误

官方文档

CATALOG
  1. 1. 前言
  2. 2. 变量
    1. 2.1. facts 变量
      1. 2.1.1. 获取方法
      2. 2.1.2. 注意事项
        1. 2.1.2.1. 变量的命名
    2. 2.2. 注册变量
  3. 3. 模块
  4. 4. Handlers
  5. 5. 处理错误