用ansible获取主机名中的最后一位字符,并存到变量中
时间: 2024-03-08 19:47:26 浏览: 46
可以使用 Ansible 的 `regex_search` 过滤器来实现这个需求。具体步骤如下:
1. 在 Ansible playbook 中定义一个变量,用于存储主机名中的最后一位字符。
```
vars:
last_char: ""
```
2. 使用 `regex_search` 过滤器来匹配主机名中的最后一位字符,并将其存入变量中。
```
- name: 获取主机名中的最后一位字符
set_fact:
last_char: "{{ inventory_hostname | regex_search('.$') }}"
```
这里使用了正则表达式 `.$` 来匹配主机名中的最后一位字符,其中 `.` 表示匹配任意字符,`$` 表示匹配字符串结尾位置。
3. 在需要使用这个变量的任务中,直接引用即可。
```
- name: 打印主机名中的最后一位字符
debug:
var: last_char
```
这样就可以将主机名中的最后一位字符存入变量中,并在后续任务中使用。
相关问题
通过ansible去获取服务器的内存大小,并存到变量中
可以使用Ansible的setup模块获取服务器的硬件信息,其中包括内存大小。可以将这些信息保存到变量中,示例代码如下:
```
- name: 获取服务器内存大小
hosts: server
gather_facts: yes
tasks:
- name: 打印内存大小
debug:
msg: "{{ ansible_memtotal_mb }}MB"
- name: 将内存大小存储到变量中
set_fact:
memory_size: "{{ ansible_memtotal_mb }}MB"
```
在上面的示例中,我们使用Ansible的setup模块获取服务器的硬件信息,并通过debug模块打印出了内存大小。然后,使用set_fact模块将内存大小存储到变量memory_size中,以便后续任务使用。
ansible templates中获取当前主机的所有ansible变量
可以使用`debug`模块来获取当前主机的所有ansible变量。具体方法如下所示:
```yaml
- name: 获取当前主机的所有ansible变量
debug:
var: hostvars[inventory_hostname]
```
以上代码将打印当前主机的所有ansible变量。其中,`inventory_hostname`是当前主机的名称,`hostvars`是一个特殊的字典,它包含了所有主机的变量,可以通过主机名来访问。
阅读全文