Articles of ansible

运行包含了一个独立的任务

我有许多Ansible的手册,将被包括在更大的剧本。 例如: — – name: Add user me user: name=me comment="Me" uid=9999 groups=somegroup – name: Add my ssh public key authorized_key: user=me key="{{ lookup('file', 'id_rsa.pub') }}" 有没有办法通过一个主机名,并从命令行作为一个独立的任务来运行,还是我需要创build另一个手册来自己运行这两个任务?

Ansible:仅在服务运行时重新启动服务

在Ansible手册中,我想在更新configuration文件后重新启动服务,但只有在已经运行的情况下 。 我不想用可靠的方式来控制服务的状态,只有在以前启动的时候才重新启动它。 我可以使用一个自定义的命令,但是它不能作为一个服务pipe理系统(upstart / systemd / sysvinit / openrc …)移植到一个完整的服务模块。 感谢您的任何提示。

anault-vaultencryption凭证

我有一个主机的库存文件: 10.1.32.123 ansible_ssh_user = vagrant ansible_ssh_pass = vagrant 我的yaml文件: – hosts: all sudo: yes gather_facts: yes serial: 20 roles: 这不是我想密码保护的yaml文件,而是我的库存文件,因为它包含用户凭证。 虽然不可能,但是当我运行剧本时,库存文件中的内容不会解密。 如果我已经encryption了yaml文件的话。 ansible-playbook inventory site.yml –ask-vault-pass 有没有办法添加凭证: ansible_ssh_user=vagrant ansible_ssh_pass=vagrant到yaml文件,只是将IP保留在清单文件中。 DOCS: VAULT

禁用标记禁止标记

我是新来的,但是我能够成功地使用blockinfile函数。 但是我不知道如何防止插入标记。 我阅读文档,但似乎没有描述它。 这是blockinfile写入的每个文件中显示的内容。 # BEGIN ANSIBLE MANAGED BLOCK # END ANSIBLE MANAGED BLOCK

debugging时退出Ansible游戏手册最简单的方法

假设我正在debugging一个Ansible剧本,并希望在给定任务后退出(而不是执行以下所有任务)。 是否有任何单行魔术命令可用,或者我必须手动创build退出/断言任务? 从ansible-playbook手册中,我看到有一个–start-at-task=START_AT标志,但是我没有看到像'end-at'对应的东西。

Ansible与SSH密钥

从木偶移到Ansible。 就像它没有代理和SSH驱动一样。 我只是设置了两个testing虚拟机。 一个作为Ansible服务器(是矫枉过正),另一个作为示例客户端(随机Linux服务器)。 我们所有的服务器都只使用公共密钥对authentication。 最初对于Ansible来说,这是有些问题的。 我很(几乎可以肯定)Ansible可以使用密钥对,但是我似乎找不到一个很好的例子。 我通过做一个专门为Ansible创build了一个密钥对 ssh-keygen -t rsa -b 4096 然后我把公钥复制到客户端。 当我通过标准的SSH进行testing时,密钥对身份validation非常有效。 现在来testingAnsible。 我把testing客户端放在Ansible主机文件中,并使用唯一正确的语法来使密钥对工作。 [TEST] 10.0.0.5 ansible_ssh_private_key_file=~/.ssh/id_rsa 当我尝试运行一个像这样的基本testing模块 sudo ansible all -m ping 我收到以下错误信息 10.0.0.5 | FAILED => SSH Error: Permission denied (publickey,password). while connecting to 10.0.0.5:22 It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output […]

使用Ansible启动具有IAMangular色的EC2实例

我试图用Ansible 启动一个IAMangular色的实例 。 但我不知道该怎么做。 有谁知道是否有可能? 如果我不能使用Ansible。 我与博托一起尝试

在Ansible中访问主机组的主机

我正在尝试使用Ansible在服务器主机文件中添加条目。 我有一组服务器,需要通过专用局域网互相通信。 我的库存文件: [server_list] server1 server2 我正在努力工作的任务: – lineinfile: dest=/etc/hosts line="{{ hostvars[" {{ item }} "]['ansible_eth1']['ipv4']['address'] }} {{ hostvars[" {{ item }} "]['ansible_hostname'] }}" with_items: groups['server_list'] 这不是伎俩,我得到这个: fatal: [server1] => host not found: {{item}} fatal: [server2] => host not found: {{item}} 这与此基本相同,但采用了新的Ansiblevariables访问格式{{ }} 。 任何想法如何做到这一点?

强制Ansible抛出错误,当在yml缺less的variables?

是否有可能迫使Ansible当replace在未定义的YML文件中的变种,抛出一个错误,而不是默默地replace为空string?

在sudoers文件中parsing错误

我创build了一个名为kafka的用户,我试图给sudo访问权限来运行/etc/init.d/kafka命令。 我通过Ansible将以下条目添加到/etc/sudoers.d/kafka: kafka ALL = NOPASSWD: /etc/init.d/kafka 但是,这完全打破了sudo与以下错误: /etc/sudoers.d/kafka:第1行附近的语法错误 sudo:parsing第1行附近的/etc/sudoers.d/kafka错误 sudo:没有有效的sudoers来源发现,戒烟 sudo:无法初始化策略插件 以下是完整的Ansible代码片段: – name: Create kafka user's group group: name: "{{ kafka_group }}" state: present – name: Create kafka user user: name: "{{ kafka_user }}" state: present group: "{{ kafka_group }}" shell: /bin/bash – name: Set up password-less sudo for kafka user copy: content: […]