我需要分析来自多个主机的nginx日志文件。
首先,我想将它们复制到主机目录。例如,我希望将nginx错误日志文件从6台主机复制到目标主机目录。
[serverB]
192.168.0.10
[serverA]
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
- hosts: serverB
tasks:
- name: Copy Remote-To-Remote (from serverA to serverB)
synchronize: src=/var/log/nginx/nginx_error.log dest=/var/log/nginx_error/
delegate_to: serverA
问题是我不能知道如何使用源ip地址命名dest文件?
我没有高雅的解决办法。这里有些变通办法。要使用源ip命名dest文件,可以使用Ansible定义的ANSIBLE_HOSTNAME
或INVIDORY_HOSTNAME
变量。在执行之前,请确保已经在ansible controller中创建了/tmp/nginx_logs/
目录。
---
- name : Copy Remote
hosts: serverA, serverB
tasks:
- name: Copy the files from the Source Machine(serverA) to Ansible Controller
synchronize:
mode: pull
src: /var/log/nginx/nginx_error.log
dest: "/tmp/nginx_logs/test_{{ ansible_hostname }}.txt"
when: "inventory_hostname in groups['serverA']"
- name: Copy log files to the destination server
copy:
src: /tmp/nginx_logs/
dest: /var/log/nginx_error/
when: "inventory_hostname in groups['serverB']"
当我用- 我可以通过使用- 我可以看到它位于那里和文件是预期的在终端。
我认为构建一个包含本地服务器、目录文件和host_Vars文件夹的ansible角色会很好。因此,通过在ansible从工作目录上安装该角色,并将清单名称作为参数传递,我可以在ansible文件夹中复制与该名称相关的文件,并在下一步中将其用作清单文件和变量,以便部署到远程服务器上。 首先,有没有人有更好的主意来制作一个动态的库存文件?使用本地git服务器和存储库还是shell命令? 主要问题:如何
挂载主机目录 挂载一个主机目录作为数据卷 使用 --mount 标记可以指定挂载一个本地主机的目录到容器中去。 $ docker run -d -P \ --name web \ # -v /src/webapp:/opt/webapp \ --mount type=bind,source=/src/webapp,target=/opt/webapp \ training/
/inventory/group_vars/directory有 我希望host_1引用/inventory/group_vars/host_1.yml中的变量
我一直试图使用Ansible Playbook将主机名添加到我的主机文件中。我的Ansible播放如下所示,我的主机文件位于: Playbook成功执行,但新主机名没有添加到Ansible hosts文件中。有人能帮我吗?
我想建立一个Docker图像,包括我的自定义Powershell模块。因此,我使用Microsofts图像,我想从这里创建我自己的图像,其中包括我的psm1文件。 我想把C:\temp\someDirectory中包含的文件复制到docker linux容器中。在构建映像时,我得到以下错误: C:\temp\docker_posh>docker build--rm-f dockerfile-t d