Ros*_*oss 233 deployment ansible
是否可以在Ansible主机上运行命令?
我的方案是我想从内部托管的git服务器进行结账(并且在公司防火墙外部无法访问).然后我想将结帐(tarballed)上传到生产服务器(外部托管).
目前,我正在考虑运行一个执行结帐的脚本,对其进行压缩,然后运行部署脚本 - 但是如果我可以将其集成到Ansible中,那将更为可取.
Lor*_*ein 332
是的,您可以在Ansible主机上运行命令.您可以指定播放中的所有任务在Ansible主机上运行,或者您可以将单个任务标记为在Ansible主机上运行.
如果要在Ansible主机上运行整个游戏,请在游戏中指定hosts: 127.0.0.1并connection:local执行以下操作:
- 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
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Ansible文档中的本地Playbooks.
如果您只想在Ansible主机上运行单个任务,则可以使用它local_action来指定应在本地运行任务.例如:
- 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
Run Code Online (Sandbox Code Playgroud)
见代表团的Ansible文档了解更多信息英寸
编辑:您可以connection: local通过将此添加到您的广告资源来避免输入您的游戏:
localhost ansible_connection=local
Run Code Online (Sandbox Code Playgroud)
(这里你使用"localhost"而不是"127.0.0.1"来指代播放).
编辑:在较新版本的ansible中,您不再需要将上述行添加到您的广告资源中,并且认为它已经存在.
小智 68
我发现了其他几种可以写这些的方法,这些方法更具有可读性.
- name: check out a git repository
local_action:
module: git
repo: git://foosball.example.org/path/to/repo.git
dest: /local/path
Run Code Online (Sandbox Code Playgroud)
要么
- name: check out a git repository
local_action: git
args:
repo: git://foosball.example.org/path/to/repo.git
dest: /local/path
Run Code Online (Sandbox Code Playgroud)
mxf*_*mxf 35
我想分享一下Ansible可以通过shell在localhost上运行:
ansible all -i "localhost," -c local -m shell -a 'echo hello world'
这可能对简单的任务或Ansible的一些实际学习很有帮助.
代码的例子取自这篇好文章:
小智 17
您可以使用delegate_to在Ansible主机(管理主机)上运行命令,从那里运行Ansible游戏.例如:
删除Ansible主机上已存在的文件:
- name: Remove file if already exists
file:
path: /tmp/logfile.log
state: absent
mode: "u+rw,g-wx,o-rwx"
delegate_to: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
在Ansible主机上创建一个新文件:
- name: Create log file
file:
path: /tmp/logfile.log
state: touch
mode: "u+rw,g-wx,o-rwx"
delegate_to: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
扩展@gordon 的答案,这是一个可读的语法和参数传递的例子,shell/command 模块(这些与 git 模块不同,因为有必需但自由格式的参数,如@ander所述)
- 名称:“生成发布 tarball”
本地操作:
模块:外壳
_raw_params: git archive --format zip --output release.zip HEAD
chdir: "文件/克隆/网络钩子"
| 归档时间: |
|
| 查看次数: |
169950 次 |
| 最近记录: |