用ansible shell 模块输出主机清单配置的ntp时钟源
时间: 2024-05-12 07:18:21 浏览: 13
好的,我可以为您解答这个问题。
您可以使用以下命令来使用 ansible shell 模块输出主机清单配置的 ntp 时钟源:
```
ansible all -m shell -a "grep ^server /etc/ntp.conf | awk '{print \$2}'"
```
这个命令会在所有主机上运行一个 shell 命令,该命令会查找 /etc/ntp.conf 文件中以 server 开头的行,并使用 awk 命令打印出每个行的第二个字段,即服务器地址。
相关问题
用ansible 命令输出主机清单配置的ntp时钟源
好的,以下是用ansible命令输出主机清单配置的ntp时钟源的步骤:
1. 创建一个名为ntp.yml的ansible playbook文件
2. 在playbook中定义一个名为ntp的host组,并将主机清单配置为该组
3. 在playbook中添加一个名为ntp.yml的task,并在其中使用ansible的template模块根据主机清单配置的ntp时钟源来生成ntp.conf配置文件
4. 在playbook中添加一个名为ntp-servers的变量组,并在其中定义ntp时钟源的列表
5. 将ntp-servers变量组传递给ntp task,以便正确地生成ntp.conf配置文件
下面是ntp.yml playbook的完整内容:
```
---
- name: Configure NTP on servers
hosts: ntp
become: true
vars:
ntp_servers:
- 0.pool.ntp.org
- 1.pool.ntp.org
- 2.pool.ntp.org
- 3.pool.ntp.org
tasks:
- name: Configure NTP
template:
src: templates/ntp.conf.j2
dest: /etc/ntp.conf
mode: 0644
vars:
ntp_servers: "{{ ntp_servers }}"
```
在这个playbook中,我们假设我们有一个名为ntp的主机组,并且我们想要使用ntp池中的服务器来同步时钟。配置文件将生成在/etc/ntp.conf,并使用640的权限存储在其上。ntp.conf.j2是一个jinja2模板,声明如下:
```
{{ ntp_servers | map('regex_replace', '^', 'server ') | list | join('\n') }}
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
```
模板中的第一行是一个过滤器管道,将ntp_servers变量中的每个项转换为ntp.conf格式。第二行是限制配置,以防止人为干扰时钟同步。您可以在template模块文档中找到更多信息。
请注意,这只是一个基本配置,应该根据您的环境需要进行修改。
用ansible写脚本,要求输出ntpd配置的时钟源地址
好的,您想要使用 Ansible 编写脚本输出 ntpd 配置的时钟源地址,步骤如下:
1. 在 Ansible 控制节点上安装 ntpdate 包:
```
yum install ntpdate -y
```
2. 在 Ansible 的 inventory 文件中指定要操作的目标主机,例如:
```
[ntp_servers]
192.168.0.1
192.168.0.2
```
3. 创建 Ansible playbook 文件,例如 ntp.yml,内容如下:
```
- name: configure ntp.conf
hosts: ntp_servers
become: true
tasks:
- name: get ntp clock sources
shell: "ntpdate -q {{ inventory_hostname }} | grep ntp | awk '{print $NF}'"
register: ntp_sources
- name: output ntp clock sources
debug: var=ntp_sources.stdout_lines
```
4. 执行 playbook:
```
ansible-playbook ntp.yml
```
执行完毕后,将输出 ntpd 配置的时钟源地址。