Questions tagged «ansible»

Red Hat Ansible是模型驱动的配置管理,多节点部署/编排和远程任务执行系统。默认情况下,它使用SSH,因此您管理的节点上没有安装特殊软件。Ansible用Python编写,但可以用任何语言扩展。它有开放源代码版本和企业版。

7
如何使用Ansible在两个节点之间复制文件
我需要将文件从机器A复制到机器B,而运行我所有可完成任务的控制机器是机器C(本地机器) 我尝试了以下方法: 在Ansible的Shell模块中使用scp命令 hosts: machine2 user: user2 tasks: - name: Copy file from machine1 to machine2 shell: scp user1@machine1:/path-of-file/file1 /home/user2/file1 这种方法永无止境。 使用提取和复制模块 hosts: machine1 user: user1 tasks: - name: copy file from machine1 to local fetch: src=/path-of-file/file1 dest=/path-of-file/file1 hosts: machine2 user: user2 tasks: - name: copy file from local to …
97 ansible 

5
Ansible剧本与角色
根据Ansible文档,一本Playbook 是: ...非常简单的配置管理和多机部署系统的基础,与现有系统不同,它非常适合于部署复杂的应用程序。 而且,根据那些相同的文档,角色 是: ...基于已知文件结构自动加载某些vars_files,任务和处理程序的方式。按角色对内容进行分组还可以轻松与其他用户共享角色。 但是,这些与它们的不同用例之间的区别对我而言并不是立即显而易见的。例如,如果我将/etc/ansible/hosts文件配置为如下所示: [databases] mydb01.example.org mydb02.example.org [mail_servers] mymail01.example.org mymail_dr.example.org ...那么这是什么[databases]... 角色?还是某个地方的剧本YAML文件的名称?或者是其他东西?!? 如果有人可以向我解释这些差异,那么我对Ansible的理解将会大大增强! Playbook vs Role vs [databases]和类似条目/etc/ansible/hosts 如果在YAML文件中定义了Playbook,那么在哪里定义角色? 除了ansible.cfg在Ansible服务器上生活之外,我如何使用可用的Playbooks / Roles添加/配置Ansible?例如,当我跑步时ansible-playbook someplaybook.yaml,Ansible如何知道在哪里可以找到该剧本?

5
如何使用Ansible设置Linux环境变量
嗨,我试图找出如何使用Ansible设置环境变量。 像这样的简单shell命令: EXPORT LC_ALL=C 作为shell命令尝试,并在使用环境模块尝试时遇到错误,未发生任何事情。 我在想什么
97 linux  ansible 

6
如何获取ansible-playbook模块执行的日志/详细信息?
说我执行以下操作。 $ cat test.sh #!/bin/bash echo Hello World exit 0 $ cat Hello.yml --- - hosts: MyTestHost tasks: - name: Hello yourself script: test.sh $ ansible-playbook Hello.yml PLAY [MyTestHost] **************************************************************** GATHERING FACTS *************************************************************** ok: [MyTestHost] TASK: [Hello yourself] ******************************************************** ok: [MyTestHost] PLAY RECAP ******************************************************************** MyTestHost : ok=2 changed=0 unreachable=0 failed=0 …
95 logging  ansible 

4
Ansible:将变量设置为文件内容
我正在使用ec2模块,ansible-playbook我想将一个变量设置为文件的内容。这是我目前的操作方式。 带有文件名的变量 Shell任务到cat文件 使用的结果cat传递给ec2模块。 我的剧本的示例内容。 vars: amazon_linux_ami: "ami-fb8e9292" user_data_file: "base-ami-userdata.sh" tasks: - name: user_data_contents shell: cat {{ user_data_file }} register: user_data_action - name: launch ec2-instance local_action: ... user_data: "{{ user_data_action.stdout }}" 我认为有一种更简单的方法可以执行此操作,但是在搜索Ansible文档时找不到。

8
如何使用具有不同变量集的模板模块?
我的用例如下: 我有一个模板文件,我想从该模板创建2个不同的文件,每个文件的变量集由不同的变量填充。 例如,假设我要对包含该行的文件进行模板化: mkdir -p {{myTemplateVariable}} 我想找到一种适当的方法来获取由“ File1”和“ File2”填充的变量。就像是 : - name: template test 1 template: src=myTemplateFile dest=result1 - name: template test 2 template: src=myTemplateFile dest=result2 在这里我可以为第一个模板指定要使用的变量为a =“ File1”,为第二个模板指定b =“ File2”。


10
无法使用Ansible来源.bashrc
我可以SSH到远程主机并执行source /home/username/.bashrc-一切正常。但是,如果我这样做: - name: source bashrc sudo: no action: command source /home/username/.bashrc 我得到: failed: [hostname] => {"cmd": ["source", "/home/username/.bashrc"], "failed": true, "rc": 2} msg: [Errno 2] No such file or directory 我不知道我在做什么错...
85 ansible 

6
Ansible:将命令的标准输出存储在新变量中吗?
在我的剧本中,我想创建一个保存外部命令输出的变量。之后,我想在几个模板中使用该变量。 这是剧本的相关部分: tasks: - name: Create variable from command command: "echo Hello" register: command_output - debug: msg="{{command_output.stdout}}" - name: Copy test service template: src=../templates/test.service.j2 dest=/tmp/test.service - name: Enable test service shell: systemctl enable /tmp/test.service - name: Start test service shell: systemctl start test.service 并说这是我的模板: [Unit] Description=MyApp After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 …

3
Ansible:按属性过滤列表
我在Ansible中注册了一个名为“ network”的变量: { "addresses": { "private_ext": [ { "type": "fixed", "addr": "172.16.2.100" } ], "private_man": [ { "type": "fixed", "addr": "172.16.1.100" }, { "type": "floating", "addr": "10.90.80.10" } ] } } 是否可以像这样通过type =“ floating”获取IP地址(“ addr”)? - debug: var={{ network.addresses.private_man | filter type="fixed" | get "addr" }} 我知道语法错误,但是您明白了。
83 jinja2  ansible 

3
如何编写具有多个任务的Ansible处理程序?
为响应更改,我有多个应运行的相关任务。如何编写具有多个任务的Ansible处理程序? 例如,我希望处理程序仅在已经启动时才重新启动服务: - name: Restart conditionally shell: check_is_started.sh register: result - name: Restart conditionally step 2 service: name=service state=restarted when: result
80 handler  ansible 

4
在Ansible中,如何获取运行Ansible用户名称的变量?
我正在编写一个部署过程的脚本,该过程采用运行ansible脚本的用户的名称(例如tlau),并基于该用户名和当前日期/时间在远程系统上创建一个部署目录(例如tlau-deploy-2014-10) -15-16:52)。 您会认为这在很多事实中都是可用的(例如LOGNAME或SUDO_USER),但是这些都被设置为“ root”或用于ssh进入远程系统的部署ID。这些都不包含本地用户,即当前正在运行ansible进程的用户。 如何编写脚本以获取运行ansible进程的用户的名称并在我的剧本中使用它?

3
在Ansible Playbook文件中指定SSH密钥
Ansible剧本可以--key-file在命令行上使用来指定用于ssh连接的密钥。 ansible-playbook -i hosts playbook.yml --key-file "~/.ssh/mykey.pem" 是否可以指定此键在剧本文件中的位置,而不是--key-file在命令行上使用? 因为我想将此密钥的位置写入一个var.yaml文件,该文件将由ansible剧本使用读取vars_files:。 以下是我的配置的一部分: vars.yml文件 key1: ~/.ssh/mykey1.pem key2: ~/.ssh/mykey2.pem playbook.yml文件 --- - hosts: myHost remote_user: ubuntu key_file: {{ key1 }} # This is not a valid syntax in ansible. Does there exist this kind of directive which allows me to specify the ssh key …
79 ansible 

6
如何在不指定清单但直接指定主机的情况下运行Ansible?
我想在Python中运行Ansible,而不通过(ANSIBLE_HOST)指定清单文件,而仅通过以下方式: ansible.run.Runner( module_name='ping', host='www.google.com' ) 我实际上可以轻松地在Fabric中执行此操作,但只是想知道如何在Python中执行此操作。另一方面,用于Python的Ansible API的文档还不是很完整。
78 python  ansible 

2
如何相对于角色复制ansible?
我在角色中有一个复制任务,并且我希望该src位置相对于角色本身,而不是相对于调用角色的剧本。 我如何进行这项工作并使用myfrole/files内部任务中的文件myrole/tasks,我不想将角色名称包含在路径中,因为它没有多大意义。如果我这样做,如果我复制角色,它将中断。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.