Questions tagged «ansible»

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

5
Ansible角色中的defaults和vars有什么区别?
创建新的Ansible角色时,模板会同时创建vars和一个defaults带有空main.yml文件的目录。在定义角色时,我可以将变量定义放在任何一个中,并且它们将在我的任务中可用。 将定义放入defaults和之间有什么区别vars?应该进入defaults什么,应该进入vars什么?将两者用于同一数据是否有意义? 我知道两者之间的优先级/优先级有所不同,但是我想了解应该去哪里。 假设我的角色将在目标系统上创建目录列表。我想提供要创建的默认目录的列表,但想允许用户在使用角色时覆盖它们。 如下所示: --- - directories: - foo - bar - baz 从执行的角度来看,我可以将其放置在defaults/main.yml或中vars/main.yml,这没有任何区别-但是应该去哪里?
151 ansible 

7
如何自动安装Ansible Galaxy角色?
我所有的Ansible剧本/角色都签入了git repo。 但是,对于Ansible Galaxy角色,我总是必须在要从其运行Ansible的每台计算机上一一明确地下载它们。 在Ansible抱怨运行时缺少角色之前,甚至很难事先确切地知道需要哪些Ansible Galaxy角色。 应该如何管理Ansible Galaxy角色依赖性?我想让它们与我的其他Ansible代码一起检入我的git仓库中,或者当我在新机器上运行Ansible时自动识别并下载它们。

11
如何检查Ansible中是否存在文件?
我必须检查中是否存在文件/etc/。如果文件存在,那么我必须跳过任务。这是我正在使用的代码: - name: checking the file exists command: touch file.txt when: $(! -s /etc/file.txt)
128 ansible 

3
如何在Ansible中执行多行Shell脚本
现在我正在使用ansible的shell脚本,如果它在多行上会更易读 - name: iterate user groups shell: groupmod -o -g {{ item['guid'] }} {{ item['username'] }} ....more stuff to do with_items: "{{ users }}" 只是不确定如何在Ansible Shell模块中允许多行脚本
125 shell  ansible 

7
自动在Ansible中创建不存在的目录的简单方法是什么
在我的Ansible剧本中,我需要多次在其中创建文件 - name: Copy file template: src: code.conf.j2 dest: "{{project_root}}/conf/code.conf" 现在很多时候confdir不存在。然后,我必须创建更多任务以首先创建该目录。 如果不存在某些选项,有什么简单的方法可以自动创建目录
117 ansible 


10
如何使用Ansible创建一个空文件?
使用Ansible创建空文件的最简单方法是什么?我知道我可以将一个空文件保存到files目录中,然后将其复制到远程主机,但是我发现这样做有些不满意。 另一种方法是触摸远程主机上的文件: - name: create fake 'nologin' shell file: path=/etc/nologin state=touch owner=root group=sys mode=0555 但是随后每次都触摸文件,在日志中显示为黄线,这也不令人满意。 有没有更好的解决方案来解决这个简单的问题?
115 file  ansible 

6
如何在无库存清单文件中设置host_key_checking = false?
我想使用ansible-playbook命令而不是' vagrant provision'。但是host_key_checking=false,hosts文件中的设置似乎无效。 # hosts file vagrant ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key ansible_ssh_user=vagrant ansible_ssh_port=2222 ansible_ssh_host=127.0.0.1 host_key_checking=false 外面是否有配置变量Vagrantfile可以覆盖此值?
113 ansible 

11
从命令行覆盖Ansible剧本的主机变量
这是我正在使用(server.yml)的剧本的一部分: - name: Determine Remote User hosts: web gather_facts: false roles: - { role: remote-user, tags: [remote-user, always] } 我的主机文件具有不同的服务器组,例如 [web] x.x.x.x [droplets] x.x.x.x 现在,我想执行ansible-playbook -i hosts/<env> server.yml并覆盖hosts: web从server.yml以运行此剧本[droplets]。 我可以直接覆盖一次,而不server.yml直接进行编辑吗? 谢谢。

5
变量是否具有正在执行的当前ansible-playbook的路径?
是否有ansible变量具有正在执行的当前ansible-playbook的绝对路径? 一些上下文: 我正在运行/创建一个针对Ansible脚本localhost以配置mysql docker,并希望相对于Ansible脚本安装数据量。 例如,假设我已将存储库签出到~/branch1/,然后运行,ansible-playbook dev.yml我认为它应该将卷保存到~/branch1/.docker_volume/。如果我从那~/branch2开始运行它,则应将其配置为~/branch2/.docker_volume/。
108 ansible 

2
仅当主机不属于组时才运行任务
我只想在当前剧本的主机不属于某个组的情况下才能执行ansible任务。在半伪代码中: - name: my command command: echo stuff when: "if {{ ansible_hostname }} not in {{ ansible_current_groups }}" 我应该怎么做?
106 ansible 

11
使用Ansible复制多个文件
我如何在任务中通过Ansible将多个文件复制到远程节点中? 我尝试在任务中复制复制模块行以定义文件,但它仅复制第一个文件。
104 ansible 

22
使用Ansible创建新的用户名和密码
我有一个麻烦的任务,它在ubuntu 12.04上创建了一个新用户; - name: Add deployment user action: user name=deployer password=mypassword 它可以按预期完成,但是当我以该用户身份登录并尝试使用我设置的密码sudo时,它总是表示不正确。我究竟做错了什么?
103 bash  shell  ubuntu  ansible 

10
Ansible:获取当前目标主机的IP地址
如何获得角色中当前主机的IP地址? 我知道您可以获得主机所属的组的列表以及主机的主机名,但是我无法找到获取IP地址的解决方案。 您可以使用来获取主机名,{{inventory_hostname}}并使用来获取组{{group_names}} 我曾尝试喜欢的东西{{ hostvars[{{ inventory_hostname }}]['ansible_ssh_host'] }} 和ip="{{ hostvars.{{ inventory_hostname }}.ansible_ssh_host }}"

7
Ansible-如果未定义变量,请使用默认值
我正在自定义users角色中的linux 创建。我需要让我的角色定制的用户home_directory,group_name,name,password。 我想知道是否有更灵活的方式来应对默认值。 我知道以下代码是可能的: - name: Create default user: name: "default_name" when: my_variable is not defined - name: Create custom user: name: "{{my_variable}}" when: my_variable is defined 但是正如我提到的,有很多可选变量,这创造了很多可能性。 是否有类似上面的代码? user: name: "default_name", "{{my_variable}}" 该代码应name="default_name"在my_variable未定义时设置。 我可以设置所有变量defaults/main.yml并像这样创建用户: - name: Create user user: name: "{{my_variable}}" 但是这些变量在一个非常大的散列中,并且该散列中有一些哈希不能为默认值。

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.