Questions tagged «ansible-playbook»

4
Ansible:是否可以在播放剧本时将“ cat文件”“ cat文件”并将其输出导出到屏幕,而不是作为调试?
我写了一部剧本,每个用户都可以安装和配置Google Authenticator。 我希望将剧本的最后一步转移cat到google_authenticator配置文件中。 使用“调试”模块,我可以将数据显示在屏幕上,但只能作为调试消息: TASK: [debug var=details.stdout_lines] **************************************** ok: [localhost] => { "details.stdout_lines": [ "ZKMFTE2ADYA2OYCH", "\"RATE_LIMIT 3 30", "\" DISALLOW_REUSE", "\" TOTP_AUTH", "12920994", "88224784", "69464205", "38144121", "45634120" ] } 我在网上阅读了可以做的事情: - name: Print to screen google authenticator details command: /bin/cat {{ google_authenticator_secret_file_location }} register: details tags: google_2fa_user - debug: msg="{{ …

2
有没有办法检查ansible任务中未定义字典键?
所以在我的代码中,我有一个任务 - name: cool task shell: 'touch iamnotcool.txt' when: me.cool is not defined 我的var看起来像 --- me: stumped: yes 因此,当我运行任务时,它将返回以下错误 {"failed": true, "msg": "The conditional check 'me.cool' failed. The error was: error while evaluating conditional (me.cool): 'dict object' has no attribute 'cool'.

2
如何使用Ansible顺序运行多个剧本?
我正在研究几本Ansible剧本,以启动一个新的服务器实例。为了成功启动服务器,我需要按照特定的顺序运行大约15种不同的剧本。 我最初的想法是编写一个shell脚本,该脚本执行ansible-playbook playbook_name.yml并为需要运行的每个剧本复制一个条目。 有没有更聪明/更好的方法来使用母版剧本来做到这一点,如果是的话,它会是什么样子(欣赏示例)。 我可以写一本完整的剧本,但有些剧本先以root身份运行,然后以sudo用户身份运行。

1
为什么Ansible通知不起作用?
我正在学习ansible并编写了简单的剧本,但我不理解或我做错了那个处理程序不起作用!请帮我。 我的剧本: - hosts: HA gather_facts: False tasks: - name: Installs pacemaker yum: pkg=pacemaker,pcs,resource-agents state=latest notify: - pcsd start handlers: - name: pcsd start systemd: name=pcsd state=started 他跳过了通知: PLAY [HA] ********************************************************************** TASK [Installs pacemaker] ****************************************************** ok: [test-ha2] ok: [test-ha1] PLAY RECAP ********************************************************************* test-ha1 : ok=1 changed=0 unreachable=0 failed=0 test-ha2 : …

1
对于可容纳约100位主机的简单Ansible剧本,合理的性能是什么?
我们开始考虑用Ansible替换旧的cfengine2安装。我有一本简单的剧本: 复制一个sudoers文件 复制模板化的resolv.conf(由group_vars和host_vars数据提供) 检查几个服务是否正在运行 检查本地用户的存在 该剧本需要4分钟的挂钟时间才能在97台计算机上运行(所有设备都通过1gig或10gig快速网络连接,LAN延迟不到1ms),并且在使用2核4G内存VM时消耗了50%以上的CPU运行它。 在单台计算机上运行大约需要11秒钟,而用户+系统的CPU时间消耗了大约4秒钟,对于所涉及的工作量来说,TBH似乎仍然有些多余。 明显的位: 我在playbook-dir本地ansible.cfg中显式启用了管道 我实际上已启用对jsonfile的缓存,相同的本地ansible.cfg 我将叉子设置为50,相同(我尝试了其他值) 我确定Ansible使用的是SSH,而不是Paramiko,并且使用的是持久控制套接字-我可以看到SSH进程正在启动并在运行过程中持久存在。 这种性能水平正常吗?或者我的设置有问题吗?如果可以,我该如何确定呢? 编辑:截至2017年8月,我们仍然看到此问题。Ansible版本为2.2.1,并且剧本的大小现已增加。最新数字: 98位房东 ansible -m ping all 实际需要4.6秒,用户需要3.2秒,系统时间为2.5秒 完整的剧本运行需要4分钟,同时使用100%的用户和约35%的系统CPU(在2核VM部署服务器上,其中100%是一个完整的CPU) 目标操作系统主要是CentOS 7,有些是CentOS 6 分析没有显示任何特定的任务热点AFAICT 尽管剧本现在更大了,但我仍然认为其中没有任何东西可以证明剧本服务器上的CPU负载水平是合理的-也许是整点时钟时间,但是对于大多数运行情况,部署服务器应该在很大程度上处于空闲状态,据我所知,主要是文件副本和一些模板扩展。 请注意,我们正在大量使用host / groupvars 有人问到了性能分析,以及性能分析的尾声: Tuesday 01 August 2017 16:02:24 +0100 (0:00:00.539) 0:06:22.991 ******** =============================================================================== yumrepo : centos repos -------------------------------------------------- 9.77s sshd : copy CentOS …

1
ansible运行全局变量
我想使用ansible创建服务器集群。 在一个主要剧本中,我包括一些子剧本。 - include: playbook_commandserver.yml - include: playbook_agent.yml 在playbook_commandserver.yml中,创建命令服务器(在AWS上)。然后,我触发一个角色,该角色使用该set_fact模块记住命令服务器的dns名称: - name: Get hostname of command server shell: /usr/bin/host $(/usr/bin/curl -s http://ipecho.net/plain) | /usr/bin/awk '{print $5}' | /usr/bin/awk -F 'aws.com' '{print $1"aws.com"}' register: cs - name: Set hostname of command server as fact set_fact: commandserver="{{ cs.stdout }}" 该commandserver事实是在同一操作可用,但不是在同一个剧本..更何况是在playbook_agent.yml,这是包含,算账。正是在这里,我需要访问该commandserver-fact。 那么如何设置/存储一个对完整的ansible运行有效的变量? 我发现了这一点:https : …
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.