Ansible facts.d文件夹未按预期工作

似乎无法从facts.d文件夹中发现事实。这是我的设置。所有提到的文件都在我安装了ansible的OSX机器上。在远程机器上运行playbook 文件:/work/myproject/ansible.cfg [default] fact_path=/work/myproject/facts.d 文件:/work/myproject/facts.d/info.fact(静态文件) 命令输出:ansible--version 文件:/work/myproject/test.yml(剧本) 命令输出

带变量的Ansible密码\u散列

我正在编写一个创建用户的简单任务。作为此任务的一部分,我想从defaults/main.yml读取密码 默认值/main.yml 测试用户:测试用户 测试组:测试组 测试用户密码:somepassword 我的任务文件如下所示 -名称:“为testuser创建组” 组:   名称:“{test_group}}”   状态:当前 -名称:“创建testuser” 用户:   名称:“{test_user}}”   密码:{{[test_user_password

Ansible 循环的循环列表

我遇到了一个问题,不知道如何正确地解决这个问题。我编写了一个模块,创建系统上安装的版本的事实。我的目标是得到一个包含在词典中的变更编号列表 任务[调试]******************************************************************* ok: [swsrv1-ccc01.localhost] => { "changed": false, "hostvars[inventory_hostname].v

Ansible 在运行带有--limit标志的playbook时,是否可以获取清单文件中所有主机的IP?

我正在尝试将iptable规则应用于一组主机,其中我希望为特定组中的主机打开所有端口。 但我无法在生产环境中为所有主机一起运行此配方。所以我使用--limit标志来运行剧本。 但由于给出以下错误,它失败了: fatal: [test-vm1]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'ansible.vars.hostvars.HostVarsVars object' has no attribute

Ansible合并json对象

我需要根据第一个对象键合并两个JSON对象 object1 = { "params" : { "type": ["type1", "type2"], "requeststate": [] } } object2 = { "params" : { "type": ["type2", "type3", "type4"], "requeststate": ["Original", "Revised" ], "responsestate":

与_嵌套和Ansible一起使用

有人能推荐一种方法来获取两个寄存器变量的内容并将它们传递到一个命令中吗?同时还以1:1的方式排列每个变量的输出结果。(如下图所示输出中的VS1:rule1、VS2:rule2等) 以下是存储在标准输出行中用于“虚拟检查”和“规则检查”的内容: "Virtual_Check.stdout_lines": [ [ "ltm virtual VS1 ", "ltm virtual VS2 ", "lt

Ansible 复制文件时出现问题

我正在尝试使用Vagrant(v2.1.2)和VirtualBox(v5.2.20)提供本地kubernetes集群 我的Vagrantfile使用ansible_local provisioner运行一些ansible剧本,以使用kubeadm提供K8s集群 几个月前,当我运行它的时候,一切都运行得很好,但现在已经不工作了。不知道它为什么停止工作,但是当我试图将kube配置复制到vagrant users home dir时,主节点的ansible playbook失败了 失败的ansible

Ansible任务失败,但继续运行

我现在正在为Ansible写一大堆支票 它包括联系远程机器并执行检查 根据这次检查的结果,我决定它是否失败 这是最重要的一点:任务本身永远不会失败。它只返回一条消息。我注册结果,然后分析它。基于这一点,我决定这是否是一次失败 问题是,我想添加一个标志,允许测试继续运行而不是失败 代码如下所示: - name: Check fail. fail: msg: "Test failed" when: "failfast_flag and <the actual check>

Ansible与_一起循环迭代

我被困在一个任务中,我试图与_一起使用,并在多个列表中循环。以下是场景:- 我有两组数据: "node_list": [ "10.2.0.1", "10.2.0.2", ] "java_process_list": [ [ "8612", "8622", "8623", "8625" ], [ "8613", "8627", "8628", "8630" ] ] 现在,我希望我的节点列表的第一个项(10.2.0.1)迭代

如何在Ansible中使用debug打印语句

角色中的文件main.yaml在下面,我想打印一些消息,如“目录已创建/存在”。当我使用下面这样的东西时,我得到了错误- 错误:任务“文件”和“确保存在下载工件的目录”中指定了多个操作 --- -名称:确保存在下载工件的目录 调试: msg:“已创建/存在目录” 文件: 路径:“{local\u server\u release\u location}” 状态:目录不可能在一个任务中同时使用调试和文件模块 相反,如果目录应该存在于本地主机上,则创建该目录并测试其存在性。比如说 - name:

变量使用的Ansible测试未定义另一个

我使用三元运算符返回定义的变量,否则返回另一个变量: {{ (variable1 is defined) | ternary(variable1, variable2) }} 这有点笨拙。有更好的方法吗?试试这个 - hosts: nodes gather_facts: false vars: var1: value1 tasks: - name: Show 1 debug: msg="{{ var1 | default('AAAAAA') }}"

Ansible 写剧本的方式

我已经开始学习Ansible,我发现在大多数情况下(甚至在官方文档中),剧本的结构如下: - hosts: all tasks: - name: task1 - name: task2 ... - name: activity 1 hosts: all tasks: - commands1 (ping all hosts, gather which ones are reachable) register: ping - group_by: key=ping

在ansible中动态选择变量

var文件定义如下: packages: - python-pycurl - name: tmux files: tmux.conf: /etc/tmux/conf tmux2.conf: /etc/tmux/conf2 因此,如果需要扩展自定义,包就是包名称或字典的列表。无论包名是在列表中定义的还是使用字典定义的,我都希望使用单个任务安装所有包。我希望能够实现以下目标: - name: Install Base Packages apt

与sudo一起运行ansible playbook

我有一本剧本,我想和sudo一起运行。这是我的ansible剧本: ansible-playbook -i hosts site.yml -K site.yml 当我运行它时,我得到以下信息: ansible-playbook -i hosts site.yml PLAY [Server] ***************************************************************** GATHERING FACTS ******************

Ansible 在lineinfile模块中为文件名和文件内容使用变量

我试图读取一个文件的内容,将它们存储在一个变量中,然后将它们插入到另一个文件中(如果它们不存在) 因此,我将尝试进行如下操作: # Create a variable that represents the path to the file that you want to read from ssh_public_key_file: '../../jenkins_master/files/{{ hostvars[inventory_hostname]["environment"] }}/id_

在需求中指定版本时,ansible galaxy安装失败

不确定这是否是ansible galaxy中的错误,但我正在尝试从requirements.yml文件(.)中安装角色。其中一个角色正在从git中提取,具有特定的版本,如下所示: 要求。yml: --- - src: https://github.com/thom-nic/ansible-shell name: thom-nic.shell version: develop 当我运行ansible galaxy install时,我得到以下输出: ± ansible-galaxy i

Ansible 可变日期变量

我试图学习如何使用易变事实作为变量,但我不明白。当我跑的时候 $ ansible localhost -m setup $ ansible localhost -m setup -a "filter=ansible_date_time" localhost | success >> { "ansible_facts": { "ansible_date_time": { "date": "2015-07-09",

Ansible远程模板

我在项目的存储库中存储了配置文件的模板。我想做的是在从存储库克隆项目之后,使用Ansible的模板模块在远程服务器上使用该模板创建一个配置文件 查看模块的文档,似乎src属性仅支持本地文件 我希望避免将配置模板存储在Ansible playbook中,因为将这些特定于项目的模板保存在项目存储库中对我来说更有意义 我是否可以使用模板模块的替代方案 如果模板要在远程主机上,这里有两个选项 首先,在远程主机上克隆repo后,您可以使用与模块工作方式几乎相反的模块将模板带回 这方面的剧本可能类似于: -

Ansible:Store命令';新变量中的标准值是多少?

在我的剧本中,我想创建一个保存外部命令输出的变量。之后,我想在几个模板中使用该变量 以下是剧本的相关部分: tasks: - name: Create variable from command command: "echo Hello" register: command_output - debug: msg="{{command_output.stdout}}" - name: Copy test service templ

无法使用Ansible安装程序包

问题:当我尝试安装包时,ansible无法继续。CLI只是闲置在那里 SSH被配置为在不提示输入密码的情况下连接。我创建了一个名为“test”的用户,我的sudoers文件具有以下配置: test ALL=(ALL) NOPASSWD:ALL 也在/etc/ansible/ansible.cfg中 inventory = /etc/ansible/hosts #library = /usr/share/my_modules/ remote_tmp

Ansible 如果变量与正则表达式不匹配,则失败

寻找一个Ansible任务,如果变量与给定的正则表达式不匹配,该任务将失败。比如: # fail when hostname doesn't match a regex - fail: msg: "The inventory hostname must match regex" when: {{ inventory_hostname }} not matches [a-z](([-0-9a-z]+)?[0-9a-z])?(\.[a-z0-9](([-0-9a-z]+)?[0-9a-z

如何在ansible playbook中比较两个不同主机的输出?

上面的代码给出了最后一个块的错误。 错误when'不是一个有效的播放属性 错误似乎出现在“/root/two_file_stat.yml”中:第27行第3列,但可能是 根据确切的语法问题,在文件中的其他位置 令人不快的一行似乎是: 名称:仅当文件未更改时阻止运行 ^这里 您应该与主机和任务运行。在上一部分中,您没有指定任何主机和任务部分 - hosts: remote_1 tasks: - name: first file check stat: pat

在Openshift上使用具有多行机密的Ansible Playbook捆绑包

当使用机密时,如中所述 然而,多行秘密似乎不像往常那样有效 如果通过添加机密,则多行机密在解析为playbook bundle参数时将其换行符更改为空格 如果如中所示手动添加机密: --- apiVersion: v1 kind: Secret metadata: name: test namespace: openshift-automation-service-broker stringData: "test1": "test1" "test2": "test

如何访问JSON数组中的重复值,并在ansible中将每个值设置为唯一的变量?

我正在运行一个ansible playbook,它以JSON格式输出我的信息。此数组有一个循环,该循环具有多个具有不同值的相同键。请参见下文,我对“intf_id”感兴趣: 目前,我可以通过以下方式访问“intf_id”的第一次迭代: 我觉得我很接近了,但我不知道如何获得“intf_id”的每次迭代。我可以通过将ROW_cdp_neighbor_brief_info[0]更改为[1]或[2]等来获取后续的密钥。我需要能够访问每个密钥,而不知道将有多少个密钥。键的每个值也需要由后续任务单独调用 1

Ansible 可解集方法

我正在创建一个清单文件,我也想成为root用户,但要做到这一点,我需要在节点上使用这个确切的命令: sudo rootsh -i -u root 有办法吗 稍后,我想将该清单用于此命令或类似命令: ansible -i inventory_file -m setup -a 'filter=ansible_virtualization_role' -o -b all 谢谢。要在清单文件中提到的节点上运行任何“sudo”命令,您必须通过添加以下内容来升级“ansible.cfg”文件中的权限:

Ansible 可根据条件更改默认值

我需要帮助Ansible并使变量基于另一个用户定义变量的条件。 我写了这样的东西,但我很确定这是错误的脚本 所以“{vcpu_size}}”必须基于用户定义的“{vm_size}}”来定义,我不知道怎么做 谢谢你的帮助 --- - name: Deploy VM on XenServer hosts: XEN_Server become: true tasks: - name: Load VPS specs for chos

Ansible 用正则表达式替换字符串是可行的,该正则表达式使用组只更改一个字符串而保留其他字符串

我有一个XML文件来配置某些进程,XML节点有两种模式: <Node> Content </Node> <OtherNode property="value"> Content </OtherNode> 内容 内容 我需要通过保留XML标记的结构来替换内容,只更改特定的节点,这带来了一个重要的限制,因为内容可以是其他标记中相同的值,并且由于明显的原因不应更改这些值 我有一个正则表达式,它只允许根据节点的名称选择一个特定的节点,而不考虑它是否有

Ansible 无法建立PyEZ连接:ConnectUnknownHostError

我正试图使用Ansible junos模块中的JUniter_junos_facts来查询我使用Vagrant配置的一些VM。然而,我得到以下错误 fatal: [r1]: FAILED! => {"changed": false, "msg": "Unable to make a PyEZ connection: ConnectUnknownHostError(r1)"} fatal: [r2]: FAILED! => {"changed": false, "msg": "Unab

即使使用正确的语法,Ansible任务也会失败

我正在学习ansible,并编写了一个LDAP验证任务。但是,当我运行playbook时,即使验证是正确的,任务也会失败 下面是ansible任务,它将检查LDAP密码的最长期限 - name: LDAP Validation shell: /usr/bin/ldapsearch -w admin -H ldap://localhost:10389 -x -D "cn=manager,dc=apache,dc=com" -b "cn=default,ou=pwpolicies,dc

如何验证操作系统软件包是否已在ansible中删除或未安装

因此,我正在编写一本ansible playbook,其中卸载了一些操作系统软件包(在本例中,是所有RedHat ABRT软件包),然后检查它们是否已卸载。卸载不是问题(它工作正常),但我需要验证包是否真的被卸载了,然后根据这一点做一些其他事情 这是在RedHat 6.9机器上,我使用的是Ansible 2.6 - name: list installed ABRT packages yum: list: abrt* register: abrt_packages

Ansible 与主机特定文件兼容,但回退到默认文件

我目前正在尝试适应Ansible,但我未能实现一个常见的用例: 假设我在角色/nginx中有一个角色nginx,其中一项任务是设置自定义默认页面: - name: install nginx default page copy: src: "index.html" dest: /var/www/html/ owner: root mode: 0644 Ansible将在以下位置查找文件: roles/nginx/files roles/nginx roles

Ansible 2.8:访问列表对象元素

在Ansible 2.8中,我需要在Ubuntu服务器VM上部署和配置Bind 9 DNS。我有一个: DNS Ansible角色进行安装和配置 每个域区域的变量列表(如DNS记录类型、域名、DNS条目等)。在此之前,它是有效的,当我试图让它接受下一个要求时,问题就会出现: 在同一个调用中,可能需要配置几个域区域。因此,我向它发送一个包含多组变量的列表(在2中提到) 现在,在shell中,我使用1元素列表调用它,使用: --extra-vars "{"dns_entry_conf":

具有有限Sudo访问权限的特权Ansible命令

我正在尝试开发一个Ansible Playbook,它执行一系列维护步骤,例如更新操作系统和清理临时文件。其中一些命令(如reboot或systemd)需要root权限。Ansible文档表明,“成为”属性是提升访问权限的适当方式: - name: reboot the host become: true reboot: reboot_timeout: 120 不幸的是,执行playbook的用户没有完全的sudo访问权限。相反,某些命令在sudoers文件中以白色列出 我遇到

Ansible剧本问题

我正在使用win\u choclatey进行windows应用程序部署,但作业一直在运行,我想它需要一个密码来安装应用程序,所以我可以在我的Playbook中声明在哪里?使用Playbook中的模块。文档中有关于如何做的例子

更新文件配置,但通过Ansible保留以前的值

是否可以通过lineinfle或其他模块更新文件配置,但保留以前的值 例如: SOME_ARGS=" -AA:1AA -BB:2BB -CC:3CC" 在行尾或行首添加-DD:4DD,结果为: SOME_ARGS=" -AA:1AA -BB:2BB -CC:3CC -DD:4DD" 或 这将不起作用,因为它将用行值替换文本: - lineinfile: path: "/some/file.txt" regexp: "^SOME_ARGS=.*-DD:4DD" line

未从Ansible中的角色调用处理程序

我试图通过调用处理程序来重新启动tomcat,我需要根据变量的条件调用该处理程序。不知怎么的,它没有被调用 - block: - debug: msg: "Configuration changes detected but no deployment, So proceeding with tomcat restart !!!!" notify: - Restart tomcat - meta: end_play when:

ansible playbook::如何在未配置的主机上播放

我正在尝试在配置以外的主机上使用-l选项播放yml。。但是跳过:没有匹配的主机。 这种情况下,需要将与主机关联的剧本例外地用于其他主机。(出于安全原因,playbook不能有hosts:all和由管理员来限制目标) 正确的方法是什么(如果有) 最后,@mdaniel的答案让我想到了一个bash包装器,它创建了一个临时yml,其中host:字段被替换为参数。。虽然不漂亮,但很管用。(这同样适用于从一系列任务动态生成剧本) 正确可行的方法我在这里找到了: 正确的方法是什么 使用all作为剧本的目标

Ansible处理程序被赋予启动特定服务的任务。如果服务在调用时已经启动,Ansible处理程序将做什么?

Ansible处理程序被赋予启动特定服务的任务。如果调用服务时该服务已经启动,Ansible handler将做什么?这取决于您用于重新启动服务的模块和定义。通常情况下(例如使用服务模块),当服务已经启动并且您指定状态:started,则什么也不发生 在处理程序中,您通常希望使用状态:restarted,这将确保在处理程序运行时重新启动服务

ansible中的库存(主机)列表位于/etc/ansible/;将其放入/etc的原因是什么?

我是新来的ansible和我的设置工作。我在/etc/anistable/hosts中看到主机列表是默认的,并使用root权限进行更改。在教程中,我看到了在用户空间中使用宿主文件的解决方案 我希望在我的主目录下设置所有的ansible。将hosts文件放在/etc中有什么好处?默认位置在那里的原因是什么 谢谢你的澄清 从安全角度来看,出于以下几个原因,将其放入/etc目录是最安全的初始选项 如果Ansible默认使用playbook执行时所在的“当前目录”中的目录文件,那么坏角色很容易将目录文件

Ansible 以模板形式部署时将新Windows来宾加入域的正确方式

我正在尝试在VMware环境中自动部署Windows guest,只要我对必须手动将其添加到域感到满意,我就完全能够做到这一点,而我不是。我尝试过使用vmware_客户机定制,但它似乎没有被应用 表2.9 红帽8 YML 结果 { "changed": true, "instance": { "module_hw": true, "hw_name": "VAL

如果任务失败,Ansible vault密码将显示在日志中

我正在使用ansible vault存储我的密码,它工作得非常好。 我遇到的问题是,当任何任务失败时,它会在日志中显示这些密码。 如何在所有情况下隐藏这些密码 这是我的示例任务 - name: Run python script for generating Projects report command: python GetProjects.py -o { org1 } -p { pat1 } register: result - debug: msg="{{result.

为单个ansible变量添加后缀/前缀

我在role1/vars/main.yml中有一个定义ansible变量的文件,用于剧本: app_name: "amazing" 稍后,我想在另一个文件role1/vars/overwrite main.yml中添加一个后缀: app_name: "{{ app_name }} app" 这是一个更复杂项目的一部分,其中定义了app\u name,然后在模板中使用,我无法访问该模板。因此,我们的想法是简单地将后缀添加到变量中。但是我可以添加一个新任务

Ansible变量“;“未找到”;第二次参考

我在一个文件中引用了一个变量,就像在“vars_files”文件中一样。它只需运行一次,然后在后续引用中失败 --- - hosts: asa gather_facts: no connection: local vars_files: - /var/lib/awx/projects/vpn/clientData tasks: - name: Build object group asa_config: lines:

如何使用ansible在专用子网(windows)中安装应用程序?

我们已经在Linux中安装了ansible,我们需要在私有子网(windows server)中安装一个应用程序(.net core),并且我们有bastion server windows Ansible(Linux)堡垒(windows)专用子网(windows), AWS中的堡垒服务器和专用子网,本地计算机中的ansible 从我的本地ansible机器,如果我们运行playbook,它应该部署在私有子网中 你能帮我。。。 提前谢谢嗨。到目前为止你试过什么?

上一页   1   2    3   4   5   6  ... 下一页 最后一页 共 192 页