小编Mic*_*l J的帖子

Simple Ansible playbook:将文件复制到目标服务器的任务文件的位置?

作为一个概念证明,我正在尝试创建可能是最简单的ansible playbook:将单个文件从ansible服务器复制到服务器场.

为了完整性,ansible已正确安装.ping模块效果很好!大声笑

我的POC的剧本写道:

---
- hosts: Staging
  tasks:
    - name: Copy the file
      copy: src=/root/Michael/file.txt dest=/tmp/file.txt

当我运行命令时......

ansible-playbook book.yml

我得到以下输出(总结)......

msg: could not find src=/root/Michael/file.txt

我读过的各种文档和网页都说文件的路径可以是绝对的,也可以是相对于剧本的.我试过两次都没有成功.

我的文件应该放在何处将其复制到目标服务器?

谢谢!

ansible

5
推荐指数
1
解决办法
2万
查看次数

当我尝试在Windows/Cygwin上使用Ansible配置Vagrant VM时,SSH因密钥文件权限而失败

我在Windows 8下使用Cygwin(CYGWIN_NT-6.3-WOW64).我还运行Vagrant(1.7.2)和Ansible(1.8.4).要完成,我的Virtualbox是4.3.22.

已经从各自的Windows安装包安装了Cygwin和Vagrant.我在Cygwin下运行Python 2.7.8并使用'pip install ansible'来安装Ansible.

所有这些应用程序本身都可以正常工作.Cygwin工作得很好; 我整天用它作为我的贝壳,每天都没有问题.

当我在Cygwin下运行Vagrant时,Vagrant和Virtualbox也没有问题.当我在网络上的服务器上运行播放或模块时,Ansible在Cygwin下运行正常.

我遇到的问题是当我尝试使用Ansible配置本地运行的Vagrant VM时.

例如,我vagrant up是一个VM,然后起草一个简单的剧本来配置它.以下是Vagrantfile:

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.define :drupal1 do |config|
  config.vm.box = "centos65-x86_64-updated"
  config.vm.hostname = "drupal1"
  config.vm.network "forwarded_port", guest: 80, host: 10080
  config.vm.network :private_network, ip: "192.168.56.101"
  config.vm.provider "virtualbox" do |v|
    v.name   = "Drupal Server 1"
    v.memory = 1024
  end
  config.vm.provision :ansible do |ansible|
    ansible.playbook = "provisioning/gather_facts.yml"
  end
end
Run Code Online (Sandbox Code Playgroud)

和剧本:

---
- hosts: all
  gather_facts: yes
Run Code Online (Sandbox Code Playgroud)

但是,当我运行'vagrant provision drupal1'时,我收到以下错误:

vagrant provision drupal1 ==> drupal1:正在运行的供应商:ansible ... PYTHONUNBUFFERED …

cygwin vagrant ansible

5
推荐指数
1
解决办法
5002
查看次数

在命令行上解析HTML; 如何在<strong> </ strong>中捕获文字?

我正在尝试从HTML输出中获取如下所示的数据:

<strong>Target1NoSpaces</strong><span class="creator"> ....
<strong>Target2 With Spaces</strong><span class="creator"> ....
Run Code Online (Sandbox Code Playgroud)

我正在使用管道列车将数据削减到我想要击中的目标.到目前为止,这是我的方法:

grep "/strong" output.html | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

grep on"/ strong"以获得目标线; 工作正常.

管道'awk'{print $ 1}'.当目标没有空格时,#1适用于#1;但当目标有空格时,#2情况下失败.只有第一个单词保留如下:

<strong>Target1NoSpaces</strong><span
<strong>Target2
Run Code Online (Sandbox Code Playgroud)

你有没有关于正确击中目标的提示,无论是在我的awk还是在不同的命令中?任何快速和肮脏的东西(grep,awk,sed,perl)都会受到赞赏.

perl awk grep sed command-line-interface

3
推荐指数
3
解决办法
2273
查看次数

如何使用Powershell从DnsServerResourceRecord获取真实的RecordData?

我正在使用PowerShell从Active Directory DNS服务器提取信息,但无法获取所需的数据。

具体来说,我正在尝试获取属于特定子网的主机的名称10.104.128.x

当我使用以下命令时:

Get-DnsServerResourceRecord-计算机名AD_DNS_SERVER-区域名104.10.in-addr.arpa -RRType Ptr | Where-Object {$ _。HostName -like'* .128'}`

我得到的输出看起来像这样:

主机名RecordType时间戳记TimeToLive RecordData                                        
-------- ---------- --------- ---------- ----------                                        
104.128 PTR 10/19/2015 3:00:0 ... 00:15:00 adl5c260a86ba79.XYZ.net。                          
11.128 PTR 2015年12月29日6:00:0 ... 00:15:00 adl3c970e8d7166.XYZ.net。                          
110.128 PTR 1/29/2012 11:00:0 ... 00:15:00 nroxitow7tst.ABC.com。                       
114.128 PTR 1/20/2012 7:00:00 AM 00:15:00 adl5c260a86c29e.ABC.com

我真正想要的是第一列(HostName),其中包含IP的最后两个八位位组;第五列(RecordData),其中包含IP分配给的主机的名称。

主机名是我真正想要/需要的数据。我在那里看到它!

因此,我使用该select命令缩减了管道系统中的输出。新命令如下所示:

Get-DnsServerResourceRecord-计算机名AD_DNS_SERVER-区域名104.10.in-addr.arpa -RRType Ptr | Where-Object {$ _。HostName -like'* .128'} | 选择主机名,记录数据

但是输出看起来像这样:

主机名RecordData                
-------- ----------               
104.128 DnsServerResourceRecordPtr
11.128 DnsServerResourceRecordPtr
110.128 …

dns powershell active-directory

2
推荐指数
1
解决办法
9525
查看次数