首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Ansible主机上运行命令

在Ansible主机上运行命令
EN

Stack Overflow用户
提问于 2013-09-20 00:29:18
回答 6查看 230.5K关注 0票数 280

是否可以在Ansible主机上运行命令?

我的场景是,我想从内部托管的git服务器上结账(在公司防火墙之外无法访问)。然后,我想将结帐(tarballed)上传到生产服务器(外部托管)。

目前,我正在考虑运行一个执行签出的脚本,将其压缩,然后运行部署脚本-但如果我能将其集成到Ansible中,那将是更可取的。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-09-20 09:08:28

可以,您可以在Ansible主机上运行命令。您可以指定播放中的所有任务在Ansible主机上运行,也可以将单个任务标记为在Ansible主机上运行。

如果您想在Ansible主机上运行整个play,则在play中指定hosts: 127.0.0.1connection:local,例如:

代码语言:javascript
复制
- name: a play that runs entirely on the ansible host
  hosts: 127.0.0.1
  connection: local
  tasks:
  - name: check out a git repository
    git: repo=git://foosball.example.org/path/to/repo.git dest=/local/path

有关更多详细信息,请参阅Ansible文档中的Local Playbooks

如果您只想在Ansible主机上运行单个任务,则可以使用local_action指定任务应在本地运行。例如:

代码语言:javascript
复制
- name: an example playbook
  hosts: webservers
  tasks:
  - ...

  - name: check out a git repository
    local_action: git repo=git://foosball.example.org/path/to/repo.git dest=/local/path

有关更多详细信息,请参阅Ansible文档中的Controlling where tasks run: delegation and local actions

编辑:通过将以下内容添加到您的库存中,您可以避免在您的游戏中键入connection: local

代码语言:javascript
复制
localhost ansible_connection=local

(在这里,您将使用"localhost“而不是"127.0.0.1”来引用该剧)。

编辑:在较新版本的ansible中,您不再需要将上述行添加到您的清单中,ansible假设它已经存在。

票数 391
EN

Stack Overflow用户

发布于 2016-03-08 06:17:45

我发现了一些其他的方法,你可以用它们来写这些,它们的可读性会更好一些。

代码语言:javascript
复制
- name: check out a git repository
  local_action: 
    module: git
    repo: git://foosball.example.org/path/to/repo.git
    dest: /local/path

代码语言:javascript
复制
- name: check out a git repository
  local_action: git
  args:
    repo: git://foosball.example.org/path/to/repo.git
    dest: /local/path
票数 89
EN

Stack Overflow用户

发布于 2016-08-02 17:11:28

我想分享的是,Ansible可以通过shell在本地主机上运行:

ansible all -i "localhost," -c local -m shell -a 'echo hello world'

这可能对简单的任务或Ansible的一些实践学习很有帮助。

代码示例取自这篇好文章:

Running ansible playbook in localhost

票数 54
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18900236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档