ansible相关内容
所以我想我应该在可能的情况下开始使用Ansible Galaxy,而不是编写我自己的角色。我刚刚安装了我的第一个角色,它已安装到/etc/local/ansible/roles(我在OSX上)。 现在我想知道您如何在我真正需要的地方安装这些角色?我是否只是将角色复制到我需要的位置,或者是否有可行的方法来执行此操作? 推荐答案 是,您可以根据示例项目结构复制它们: site.ym
..
下面是我使用SERVICE_FACTS模块检查服务状态的示例Ansible攻略,它工作得很好。在这里,我需要支持将服务名称定义为变量,但是当我定义它时,会给出错误,变量未定义: --- - name: Check service status hosts: all gather_facts: no tasks: - name: Service Facts se
..
我已使用service_facts检查服务是否正在运行并已启用。在某些服务器中,未安装特定软件包。 现在,我如何使用service_facts module知道此特定软件包未安装在该特定服务器上? 在Ansible攻略中,它显示以下错误: localhost | SUCCESS => { "ansible_facts": { "services": {
..
我喜欢截断其他应用程序打开并使用的现有文件或调整其大小。例如,随着时间的推移,磁盘上可能会堆满占用大量空间的日志文件,如/var/log/secure。 在纯Linux中,等效项为 truncate -s 0 /var/log/secure dd if=/dev/zero of=/var/log/secure bs=1M count=0 echo > /var/log/secure
..
我正在尝试使用with_items指定要传递给自定义Ansible模块的键/值对列表。 当键或值字符串具有类似列表的格式时,会出现问题。例如,"[('a', 'b'), ('c', 'd')]"。在这种情况下,with_items可能会将字符串转换为列表,并破坏我的配置。 要再现的最小示例(我使用的是debug模块,但与自定义模块的行为相同): - name: with_items_
..
获取json、csv或其他格式的Ansible ad-hoc命令输出的方法是什么 推荐答案 如果您不想修改.cfg文件,也可以通过环境变量进行修改,例如: ANSIBLE_LOAD_CALLBACK_PLUGINS=true ANSIBLE_STDOUT_CALLBACK=json ansible all -a "df -h /tmp" 有关Ansible环境变量的详细信息,
..
我正在使用Ansible Playbook从XML文件中提取要替换的特定属性值,如Ansible XML模块页面中所述。但是对于XML标记根深蒂固的这种场景,我不太确定。我想知道如何使用Ansible中的XML XPath模块替换此标记值。 为便于理解,示例XML文件: # # Tasty Beverage Co.
..
我正尝试通过Jenkins groovy脚本运行Ansible Playbook,但不断收到错误:boto3 is required。我已经安装了boto3: pip list boto | grep boto boto3 1.20.3 botocore 1.23.3 我的库存为:
..
我有一个Ansible play文件,它必须执行两个任务,第一个任务是在本地计算机上获取磁盘使用率,另一个任务是获取远程计算机的磁盘使用率并在远程计算机上安装apache2。 当我尝试运行该文件时,收到错误";error!“sudo”不是播放的有效属性&qot; 当我从YML文件中删除sudo和apt部分时,它运行正常。 我使用的是Ansible 2.9.4。以下是两个攻略文件:
..
显然,根据几个小时的搜索,没有人遇到此用例: 很简单-我想根据变量类型执行一些ANsible逻辑。基本上等同于instanceof(dict, var_name),但在Ansible中: - name: test debug: msg: "{{ instanceof(var_name, dict) | ternary('is a dictionary', 'is somethi
..
是否可以使用set_fact在Ansible中设置包含列表的事实?它的正确语法是什么? 推荐答案 确实如此。不过,您需要引用整个列表: - name: set fact set_fact: foo="[ 'one', 'two', 'three' ]" - name: debug debug: msg={{ item }} with_items: foo 上述任
..
我想遍历许多主机,并获取未先启用(Systemctl Enable Xxxx)而手动启动(Systemctl Start Xxxx)的所有服务,反之亦然。所有已禁用(systemctl禁用xxxx)但仍在运行(因为尚未停止)的服务。 我只希望将它们输出到我的shell中,而不是自动“修复”上面发现的所有问题。 在systemctl list-unit-files --state=dis
..
我有以下词典: { "test1": ["300m","","0","4","1050m"], "test2": ["600m","","","0","2"] } 我将对上述列表中的项目执行替换,并尝试执行此操作: - set_fact: result: "{{result | default({}) | combine( { item.key: item.valu
..
我使用ansible-pull在我看不到的远程计算机(客户端)上运行Ansible脚本。 我想确保: 可修改的剧本执行成功,则应发送摘要 可分析的行动手册如果执行不成功,应发送失败内容的摘要 启用Ansible日志将信息存储在一些日志文件中,但我想知道是否可以通过Ansible中预定义的一些变量获得以下Ansible输出的结果。 PLAY [localhost] ****
..
我使用的是[file lookup],它读取整个文件并将内容存储在一个变量中。我的剧本是这样的: - name: Store foo.xml contents in a variable set_fact: foo_content: "{{ lookup('file', 'foo.xml' ) | replace(' ', '')}}" 所以上面的代码读取foo.x
..
我正在尝试列出我的 Debian 7/8/9 机器上所有已安装的软件包.使用 apt 或 dpkg 有一些简单的方法来处理它,但我找不到开箱即用的 ansible 的合适方法. 有没有很好的流畅的方法来做到这一点? 对于 RHEL 机器,我发现了这篇文章:如何获取用 Ansible 安装的 yum 包? 解决方案 看起来 Ansible 没有提供任何支持此功能的模块.您必须使用
..
我开始学习 Ansible,但文档并没有太大帮助. 我已经在 RHEL 上安装了控制机器并创建了必要的 hosts 文件和 windows.yml. 但是当尝试连接到远程 Windows 服务器以获取 pong 时,我收到以下错误: [root@myd666 ansible_test]# ansible windows -i hosts -m win_ping主机名 |遥不可及!=>
..
在尝试执行 terraform 代码时,如果它在代码中间失败会发生什么?假设我们正在尝试将四个应用程序部署到一个 ubuntu 实例上.它完成了部署 2 个实例,并在第三个失败?它是停止整个过程并报告错误,还是跳过失败的部分并移动到下一个部分,即(在本例中为第四次部署)?请让我知道这件事. 你也可以为 (ansible,puppet,chef) 提供上述相同的过程吗? 感谢和问候.
..
我有一长串机器,所有这些机器在系统中的功能都略有不同.我想组织这些机器并自动添加到主机清单文件中,以便我可以运行 ansible 和管理清单.有没有好的解决方案? 我认为 ansible 主机应该看起来像... [网络服务器]一些一些[一体化]一些一些 等等. 在提出问题后,我目前正在研究输出变量并使用它们从文件中呈现模板. 解决方案 我想通了. 数据“template_
..
在 ansible playbook 中,如果需要升级,我想停止 MariaDB(在我的情况下,从 RPM 包重新启动并不总是有效).我对 ansible 很陌生. 我想出了这个: - name: "检查 MariaDB 是否需要升级"外壳:“yum 检查更新 MariaDB 服务器|grep MariaDB|wc -l"注册:needs_update- 名称:“停止 mysql 服务"服
..