Jur*_*ocs 18 ansible ansible-playbook
我开始使用ansible,我正在寻找一种方法来在服务器上创建一个样板项目,并在本地环境中使用ansible playbooks.
我想在本地使用ansible模板来创建一些通用文件.但是我如何采取ansible在本地执行某些事情?
我用local_action读了一些东西,但我想我没弄错.
这是针对webbserver ...但是如何在本地创建一些文件呢?
- hosts: webservers
remote_user: someuser
- name: create some file
template: src=~/workspace/ansible_templates/somefile_template.j2 dest=/etc/somefile/apps-available/someproject.ini
Run Code Online (Sandbox Code Playgroud)
udo*_*dan 32
您可以使用param将任务委派delegate_to
给您喜欢的任何主机,例如:
- name: create some file
template: src=~/workspace/ansible_templates/somefile_template.j2 dest=/etc/somefile/apps-available/someproject.ini
delegate_to: localhost
Run Code Online (Sandbox Code Playgroud)
请参阅文档中的Playbook Delegation.
如果您的Playbook通常应该在本地运行,但不涉及外部主机,您只需创建一个包含localhost
然后针对该组运行该剧本的组.在您的库存中:
[local]
localhost
Run Code Online (Sandbox Code Playgroud)
然后在你的剧本中:
hosts: local
Run Code Online (Sandbox Code Playgroud)
小智 15
Ansible有一个local_action
指令来支持这些避免localhost
和/或ansible_connection
变通方法的场景,并在代表团文档中有所涉及.
要修改要使用的原始示例local_action
:
- name: create some file
local_action: template src=~/workspace/ansible_templates/somefile_template.j2 dest=/etc/somefile/apps-available/someproject.ini
Run Code Online (Sandbox Code Playgroud)
看起来更干净.
如果您不能执行/允许 localhost SSH,您可以拆分本地操作和远程操作的剧本。
该connection: local
说,不使用SSH的剧本,如下所示:http://docs.ansible.com/ansible/playbooks_delegation.html#local-playbooks
例子:
# myplaybook.yml
- hosts: remote_machines
tasks:
- debug: msg="do stuff in the remote machines"
- hosts: 127.0.0.1
connection: local
tasks:
- debug: msg="ran in local ansible machine"
- hosts: remote_machines
tasks:
- debug: msg="do more stuff in remote machines"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32108 次 |
最近记录: |