草庐IT

ansible-runner

全部标签

linux - Ansible权限问题

我正在尝试将当前用户添加到系统中的一个组,然后执行一个需要该组权限的命令。我的剧本是这样的:-name:AddthisusertoRVMgroupsudo:trueuser:state=presentname=vagrantappend=yesgroups=rvmgroup=rvm-name:InstallRuby1.9.3command:rvminstallruby-1.9.3-p448creates=/usr/local/rvm/bin/ruby-1.9.3-p448问题是所有这些都发生在同一个shell中。vagrant的shell还没有用新的组更新。是否有一种干净的方法来刷新用

linux - 如何创建 Ansible 剧本来获取远程主机的操作系统版本?

我是ansible的新手。我有一个要求,要求我为AWS中托管的450多个Linux服务器提取操作系统版本。AWS不提供此功能——它建议我们从puppet或chef那里获取它。我创建了一些无法运行的简单剧本----hosts:testmachineuser:ec2-usersudo:yestasks:-name:Updateallpackagestolatestyum:name=*state=latesttask:-name:obtainOSversionshell:Redhat-release剧本应该输出一个包含主机名和操作系统版本的文本文件。对此的任何见解将不胜感激。

linux - 这是在 ansible 的 conf 文件中进行配置更改的最佳方法

最初我使用makefile在linux中部署我的应用程序。我有各种sed命令来替换PHP上传文件大小、帖子大小、日志文件位置等变量。现在我正在转向ansible。我知道我可以复制文件,但我如何更改conf文件?就像我只想更改upload_filesize=50M参数一样。我不想复制整个conf文件,然后用我的文件替换。有时它只是一行的改变。有没有更好的方法来编辑ansible中的配置文件? 最佳答案 如果它是一个INI文件,那么ini_file模块(http://docs.ansible.com/ini_file_module.ht

linux - 使用 Ansible provisioner 重启 Vagrant 机器时同步文件夹丢失

Vagrant使用VirtualBox创建一个开发环境,然后使用ansible提供它。作为配置的一部分,ansible运行重启,然后等待SSH恢复。这按预期工作,但因为vagrant机器不是从“vagrantup”命令启动的,所以当盒子从重启中恢复时,同步文件夹没有正确安装。运行“vagrantreload”修复机器并再次挂载共享。有没有办法告诉vagrant重新加载服务器或执行手动重启后vagrant会做的所有事情?当SSH-ed进入vagrantbox时简单地运行“sudoreboot”也会产生同样的问题。 最佳答案 Vagra

linux - Ansible:检查服务是否正在监听特定端口

您将如何使用Ansible确认服务是否在特定端口上运行?例如:Apache是否在端口80上运行?MySQL是否正在监听端口3912?Tomcat是否正在监听端口8080?我知道有service和wait_for命令,它们分别检查服务是否正在运行以及端口是否正在使用-但我没有找到到目前为止检查特定服务是否正在监听特定端口的任何内容。service和wait_for将指示有一个服务和一个端口,但不能保证该端口被该特定服务占用——它可能被任何东西占用。wait_for,据我理解,只是检查它是否被使用。wait_for上有一个regex_search参数,它提到在套接字连接中搜索特定字符串,但

linux - 如何让ansible连接到linux跳转服务器后面的windows主机

我想提供子网中只能使用Linux跳转主机访问的Windows主机。Windows机器使用winrm连接方式。Linux跳转服务器可通过SSH访问。如果可以直接访问Windows主机,我没有问题:ansible_connection:winrm如果我尝试通过以下方式将任务委派给Linux跳转服务器(可以直接访问Windows):-name:Pingwindowshosts:windows_machinestasks:-name:pingwin_ping:delegate_to:"{{item}}"with_items:"{{groups['jump_servers'][0]}}"它尝试连

ruby-on-rails - ruby rails : How can I specify runner script environment

我正在使用shell脚本在我的RubyonRails应用程序中运行一些运行器脚本。我需要在生产数据库上运行它,但以下内容:#!/bin/bash/usr/bin/rubyRAILS_ENV=production../script/runner../lib/tasks.rb报错:/usr/bin/ruby:Nosuchfileordirectory--RAILS_ENV=production(LoadError)我试图在config/environment.rb中强制执行它ENV['RAILS_ENV']||='production'甚至ENV['RAILS_ENV']='product

linux - 如何在ansible命令中提及通配符

我正在通过Ansible执行shell命令。有时我没有完整的文件夹名称。假设我有目录名solr4.7.0。在shell中我可以输入cdsolr*。但是在ansible中我做不到:chdir=/var/solr*有什么解决方法吗? 最佳答案 没有。例如,command模块的chdir=参数不支持通配符。您可以使用registervariable完成您想要的事情存储ls命令的输出:-shell:ls-dsolr*register:dir_name-command:some_commandargs:chdir:"{{dir_name.st

linux - Ansible 等部署工具相对于 shell 的优势

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion目前我的所有部署脚本都在shell中,它安装并配置了大约10个程序。我认为shell是一个很棒的工具:模块化:每个脚本只有一个程序,这样我就可以将程序分散到不同的服务器上。简单:Shell脚本非常简单,不需要安装任何其他软件。一键式:我只需运行一次shell脚本,一切就绪。不可知论者:大多数程序员都能理解shell,不需要知道如何使用特定程序。版本控制:因为我的代码在GitHub上一个简单

linux - Ansible:是否可以搜索替换单个单词

在lineinfile模块,它取代整行。如果行很长,我必须再次重复整行。假设我想替换文件中的单个单词:#abc.confThisismyhorse这是剧本:-lineinfile:dest=abc.confstate=presentregexp='horse'line='Thisismydog'backup=yes有什么方法可以实现类似sed's/horse/dog/g'的东西吗? 最佳答案 新模块replace自1.6版本开始可用:-replace:dest=abc.confregexp='horse'replace='dog'b