如何从Ansible中的新Python模块访问主机名

我计划实现一个新的Ansible模块,它将通过本地连接运行,并对主机进行远程API调用。是否有任何方式可以从模块访问主机名/IP地址?我想在此基础上决定使用哪种API。我假设您的操作类似于从跳转主机在网络设备上操作 现在我不知道Ansible module基类中的inventory_主机在哪里,但在这种情况下我经常做的是: ansible_connection: local tasks: - name: config net app myconfig: action=create_

如何在ansible playbook中取消设置http_代理

在最简单的示例中,设置环境就像下面设置http_代理一样,请参见 在我的例子中,我需要在system shell中使用这个http\U代理,而我想在playbook中禁用它,我该如何实现呢 如果我在shell中工作,我可以使用unset http\u proxy您的游戏就可以做到这一点:只为该任务设置环境,任何后续任务都不会设置变量 例如: - hosts: all tasks: - apt: name=cobbler state=installed environment:

ansible:有点像列表理解?

鉴于这一库存: [webservers] 10.0.0.51 private_ip='X.X.X.X' 10.0.0.52 private_ip='Y.Y.Y.Y' 10.0.0.53 private_ip='Z.Z.Z.Z' 如何获取Web服务器的私有IP列表 webservers_private_ips: "{{ }}" # ['X.X.X.X', 'Y.Y.Y.Y', 'Z.Z.Z.Z'] 我知道组['webserver']会给我这个列表['10.0.0.51','10

Ansible galaxy:应为字典中的角色名称

我有一本列出了角色的ansible剧本。其中一个角色有一个标签,它是ansible galaxy角色。我用ansible galaxy安装了它 剧本部分: roles: ... roles here - {name: httplab.ffmpeg, tags: ffmpeg} 在playbook跑步中我得到 ERROR: expected a role name in dictionary: {'name': 'httplab.ffmpeg', 'tags': 'ffmpeg'}

ansible playbook不限制主机

我有一个hosts文件,指定属于多个组的服务器: [web] 192.168.45.37 [integration] 192.168.45.37 [database] 192.168.45.37 在剧本中,不同的小组有不同的角色: - hosts: all roles: - { role: base, tags: ['base'] } - { role: logstash, tags: ['logstash'] } - hosts: database roles:

Ansible sx模拟

有人知道如何在RHEL机器上使用sx su模拟来执行剧本吗 Ansible只提供现成的sudo,但我们不能使用sudo,因为我们使用的是Boks ssh。 有人知道如何解决这个问题吗?Ansible特权升级记录如下: 它提到你不能组合方法。实际上你可以! Ansible.cfg有一个flash,您可以使用sx su作为一种变成方法您能否分享boks配置(sx su-)的外观,我仍然无法理解。以及如何为用户提供密码

什么';使用Ansible升级APT软件包的正确方法是什么?

在设置新的Linux服务器时,我通常会运行apt get update,然后运行apt get upgrade。第一个命令更新可用软件包及其版本的列表,但不安装或升级任何软件包。第二个命令实际上安装了我拥有的软件包的更新版本 在Ansible中,正确的方法是什么?你可以这样做: - name: update and upgrade apt packages apt: > upgrade=yes update_cache=yes cache_valid_time=

Ansible 如何将变量转移到playbook中?

我有剧本,其中包括。还有var_提示符“name_VM”,我需要include playbook“new VM.yml”中的transfer变量,但我有错误: 任务[主机名] ****************************************************************致命:[192.168.250.102]:失败!=>{“failed”:true,“msg”:“the 字段“args”的值无效,似乎包含变量 这是未定义的。错误是:{{name\u VM}:'n

针对两个群体的Ansible剧本

我正在写一本ansible的剧本,升级Kubernetes在《奴才》上的版本 - name: Configure and start the Kubernetes Nodes hosts: kubernetes-minions serial: 1 tasks: - name: backup K8S master files. shell: "{{item}}" with_items: - cp /etc/kubernetes/config

将参数传递给Ansible角色时,变量为未定义错误

我是个新手,我现在正在做的就是扮演这个角色 更多站点.yml --- - hosts: user1_checkserverlist user: user1 roles: - { role: speed_manager, DNAME: "/u" } - hosts: oracle_checkserverlist user: oracle roles: - { role: speed_manager, DNAME: "/tmp" } 速度更快\u管理器/defa

如何在Ansible中运行sudo-u username命令?

我想使用Ansible以sudo-u用户名运行特定命令 我尝试了下面的任务,但面临权限问题 --- - hosts: all become: yes vars_files: - vars.yml tasks: - name: "Create solr cores" shell: /opt/apps/solr/bin/solr create -c test10 become_flags: '-u solr' register:

循环使用ansible任务遍历composer require

我觉得这应该是非常直截了当的,但我已经在这里倾诉了ansible文档和其他答案,我被卡住了 我要做的是使用ansible composer对象在composer require语句中设置要使用的composer包数组或列表 因此,我有一个这样的事实来定义模块: - name: Define modules to be required set_fact: modules: - vendor1/package1 - vendor2/package2

属性不存在执行ansible playbook时出错

我试图执行现有ansible playbook,但出现以下错误: fatal: [default]: FAILED! => {"failed": true, "msg": "ERROR! 'unicode object' has no attribute 'regexp'"} 执行ansible剧本的这一部分时: - name: "Add access to pg_hba.conf for DB users" become: yes become_user: postgres

有没有办法使用Ansible Tower Rest API获取作业的日志/输出

我有一份由另一个流程开始的可靠工作。现在我需要检查Ansible Tower中当前正在运行的作业的状态。我能够使用Rest API跟踪状态是否为正在运行/成功/失败/取消,作业Id为]但是我还需要任务的控制台日志/输出的信息来进行处理。有没有针对同一个模板的直接API?一旦启动模板,您就会得到作业id作为响应,但我认为没有API来获取作业的输出。但是,您可以从“作业”部分下的仪表板下载单个作业输出。您可以通过类似以下内容的链接访问作业日志: https://tower.yourcompany.c

未定义变量的Ansible语法检查

我有一本剧本,比如: myplaybook.yml --- - name: call another playbook hosts: 127.0.0.1 - include: "{{name}}-playbook.yml" when: name is defined 这里,我将cli中的'name'变量作为--extra-vars传递 它工作得很好。但是,当尝试使用下面的命令检查语法时,其给出的错误是名称未定义 Ansible-playbook --syntax myplaybook

Ansible获取索引列表

我正在使用ansible创建一个剧本,以根据提示参数安装我的项目 我可以用这个脚本安装2个应用程序,我在开始时会提示其中一个,然后我需要获得良好的ssh端口,因为应用程序有不同的端口 ssh_smx_ports: - pds: 8103 - activemq: 8102 启动脚本时: vars_prompt: - name: "type_smx" prompt: "cible? (pds,activemq)" private: no 需要创建后,请将此端口传递给另一个命令:

如何在ansible中循环执行一系列任务

我正试图用下面的剧本卸载文件系统 vars: unmountlist: - "/DATA1" - "/DATA2" tasks: - name: unmount mount: path: "{{ item }}" state: unmounted with_items: - "{{ unmountlist }}" register: output ignore_errors: true - debug: msg

这个Ansible变量应该如何定义?

我试图理解我在一个不完整的Ansible角色中发现的变量引用。角色使用引用值 dest: “{{params['box'].t1}}” 在另一个yaml文件中,我有 box: t1: "Albany" t2: "Albuquerque" params没有定义,所以很明显这是行不通的,但我无法找到定义它的正确方法有人能告诉我必须在何处(或如何)定义参数才能在Ansible中使用此变量引用吗? 相关问题。在dest:“{{params['box'].t1}}”中使用方括号是否表

Ansible 使用\u项运行playbook中的所有任务

我希望playbook与列表中的每个项目一起运行一次,而不是同时运行列表中的所有项目 Ansible版本:2.6.1 Tasks.yaml: --- - name: Task 1 debug: msg: "Message 1: {{ item }}" with_items: "{{ messages }}" - name: Task 2 debug: msg: "Message 2: {{ item }}" with_items: "{{ messages

Ansible 如何切换每个任务或一组任务的用户?

ansible剧本中经常出现的一个主题是,我经常必须以sudo权限执行命令(sudo:yes),因为我想为某个用户执行命令。理想情况下,我更愿意使用sudo切换到该用户并正常执行命令。因为这样我就不必执行我通常的post命令清理,比如chowning目录。以下是我的一本剧本中的一个片段: - name: checkout repo git: repo=https://github.com/some/repo.git version=master dest={{ dst }} sudo:

Ansible循环/条件

我一直在做一个游戏来创建一个虚拟服务器,并通过向用户询问一些问题来收集配置需求 我想运行一些预检查以显示某些虚拟服务器属性存在,我已经能够计算出除概要文件之外的所有属性 运行“list ltm profile”时,需要指定协议,然后指定配置文件名称,例如“list ltm profile tcp”。检查一个LTM配置文件是可以的,但我遇到的困难是当您需要检查多个配置文件时 是否有一种方法可以循环我的问题并将用户输入传递到检查中?假设用户希望检查以下配置文件: list ltm profile h

在ansible playbook中获取错误消息语法错误

错误!加载YAML时出现语法错误。 未找到所需的密钥 错误似乎出现在“/etc/ansible/main.yml”中:第73行第50列,但可能是 根据确切的语法问题,在文件中的其他位置 令人不快的一行似乎是: - name: Ensure IP forwarding is disabled shell: "sysctl net.ipv4.ip_forward ; grep "net\.ipv4\.ip_forward" /etc/sysctl.conf /etc/sysctl.d/*"

是否有一个ansible函数将日期字符串转换为历元

我希望将日期输入变量转换为历元。没有看到ansible函数来帮助我解决这个问题 例如: 日期是一个格式变量:%m/%d/%Y%H:%m:%S,需要将其转换为历元秒。Ansible有一个to_datetime过滤器,已记录。该页面包括以下示例: 使用此筛选器,您可以将日期转换为字符串转换为unix历元时间,如下所示: - debug: msg: "{{ ('2019-05-06 15:50:00'|to_datetime).strftime('%s') }}" 这将产生: TASK [d

Ansible 无法访问主机时如何跳过角色?

我有disable_root角色,它创建管理员用户并禁用root用户通过ssh连接到服务器。 当我第二次使用这个角色重新运行playbook时,我得到了一个无法访问的错误,这是可以的,因为我刚刚禁用了它 在这种情况下,我想跳过这个角色,继续使用其他将作为管理员用户运行的角色。我该怎么做 这是我的剧本disbale\u root使用ansible\u用户:root var 如果需要,一个playbook应以root用户身份连接到远程主机,如果已经创建了此用户,则应以admin用户身份连接到远程主机

Ansible在一个剧本中混合角色和apt

我刚开始学习Ansible,在同一本书中找不到任何讨论使用角色和apt的文档。我写的剧本在这里 --- - hosts: apps become: yes tasks: - name: Install distutils apt: name: python3-distutils state: present - name: Run roles roles: - geerlingguy.git

Ansible 易变库存链

我是Ansible的新手,正在努力学习基础知识。但是很明显,我在建立库存文件方面已经失败了 对于设置: 1) 通过自制安装ansible 2) 由于没有创建ansible.cfg,我在/etc/ansible/ansible.cfg中手动创建了一个 ansible.cfg [defaults] inventory = /etc/ansible/hosts/; 3) 那里也没有hosts文件,所以我在/etc/ansible/hosts中创建了相同的文件 主机 Test1 Test2 当我运行

Ansible“;log_path=/var/log/ansible.log";最大文件数&;大小

我正在尝试查找日志文件“ansible.log”的默认最大文件大小。配置文件仅解释其logrotate,因此生成的最大文件数和这些文件的最大大小是多少。或者它只是一个文件,在特定的大小之后进行日志旋转。Ansible使用Python模块,它不考虑日志旋转。可以在Python中使用,但只有2个Ansible模块使用Python模块 (grep git回购) 并且没有模块使用 但是,配置旋转并不难。例如,从角色的角度来看 $ grep -ri logging.handlers /devel/ans

Ansible 无法运行自定义模块

我创建了一个自定义模块pingtest,它使用ping命令ping所有服务器。我已经为它创建了一个shell脚本,后来将它放在playbook目录的library目录中。当我写了一本使用该模块的剧本时,它给了我一个错误,说 致命:[ansibleclient]:失败!=>{“msg”:“模块(pingtest)缺少解释器行”}” 我试图更改IP地址,但似乎没有任何效果,我正在使用ansible 2.7.9版 ping测试模块 #/bin/bash /bin/sh source $1 >/

Ansible 有没有办法解决这个问题;"展览";路径问题?

我正在尝试使用ansible为MYSQL数据库设置根密码。我使用的是debconf,但是,它错误地告诉我: Failed to find required executable debconf-show in paths: /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin 我的yaml文件包含: - name: set root password become: yes debconf: name: 'mysql-server'

头先计划-ansible

我使用以下命令安装了ansible sudo apt-add-repository ppa:ansible/ansible sudo apt update sudo apt install ansible 我跟着这个。通过使用它,我创建了一个名为test.yml的yml文件(代码如下所示) 然后我运行ansible playbook./test.yml。我得到以下错误 我不知道我错过了什么。任何想法都值得赞赏。非常感谢你 sato:~/play_around_with_ansible$ ans

使用Ansible Galaxy自动安装Ansible自定义模块

有没有什么好方法可以使用Ansible Galaxy来安装和启用Ansible(2.7.9)定制模块 我的要求允许Ansible Galaxy下载嵌入自定义模块的正确Ansible角色。一旦ansible galaxy安装--roles路径ansible/roles/-r roles/requirements.yml,我将得到以下结构(非详尽): 通过查看这部分文档,我的模块似乎位于正确的位置,不需要任何进一步的配置: 但当我发现这部分文档时,我感到困惑。ANSIBLE\u库是否与自定义模块相关

Ansible-检查项目是否在列表中

我想比较两个列表——一个是所有可用选项,另一个是要选择的特定选项。 例如,我有两个列表: FullList: - name: "Test1" value1: "blabla123" value2: "someothervalue" - name: "Test2" value1: "blsdfsdfasfabla" value2: "someothervalue" - name: "Test3" value1: "sdjfbhsadbfv"

elasticsearch Elastic.elasticsearch角色与Ansible塔动态库存

我正在尝试使用官方的Elastic Ansible角色Elastic.Elasticsearch在Ansible上配置Elasticsearch群集。我为我的AWS实例设置了Ansible tower和动态清单。我标记了我的实例,并将它们全部分组到tag_Group_Elasticsearch中。以下是Ansible代码: hosts: tag_Group_Elasticsearch roles: - role: elastic.elasticsearch vars:

如何访问';调用';ansible playbook中返回值的变量?

当使用Ansible Playbook运行调试模式时,我可以清楚地看到其中一个返回值是“invocation”,但我很难从Playbook中获取它。“register:xyz”只允许您从返回值中获取“msg,status failed,changed”(至少在我使用的任务-proxmox_kvm中是这样)。有没有一种方法可以访问它们的其余部分 我的代码: --- - hosts: pve become: yes vars: passwd: !vault |

ansible中特定于操作系统的前置任务

我想运行一组原始命令(安装python),如果给定 目标主机上的操作系统是OpenBSD 我必须将这些检查作为pre_任务运行(因为要将任何东西作为任务运行,目标系统上必须已经存在Python) 我不了解的是,在任务前阶段(如ansible_OS_系列)是否有任何OS特征变量可用 -name:检查Python raw:test-e/usr/bin/python 更改时间:false 当:false时失败 寄存器:check_python -名称:在OpenBSD上安装Python #原始:tes

ansible系统启动一项服务

我想在systemd服务上启动一个服务,但我有一个错误,我不知道如何解决它 - name: Start service systemd: name: "{{ item }}" state: started enabled: yes daemon_reload: yes with_items: - a.service 我有一个错误: 失败:[host](item=a.service)=>{“ansible\u loop\u va

Ansible 使用可共享磁盘创建多个节点

我正在创建一个Oracle RAC设置,其中包含2个虚拟机和两个虚拟机之间共享的一组6个磁盘 流浪汉档案在这里- # encoding: utf-8 # -*- mode: ruby -*- # vi: set ft=ruby : # -- define the number of nodes to spin -- N=2 cname="laxrac" Vagrant.configure("2") do |config| #Iterate ove

如何通过Ansible安装NVS

我正在尝试通过Ansible安装,但运气不太好。接下来,我似乎应该首先确保设置NVS\u HOME环境变量,然后克隆repo,然后运行安装程序 因此,以下是我在剧本中的设置: -主机:所有 远程用户:“{{新用户}}” 收集事实:真实 环境: NVS\u主页:~/.NVS 任务: -名称:查看是否已安装NVS 线条填充: 路径:~/.zshrc 行:导出NVS_HOME=“$HOME/.NVS” 国家:现在 检查模式:true 注册号码:zshrc -名称:克隆NVS回购协议 吉特: 回购:ht

Ansible 用一些任务和另一个剧本创建剧本

目前我正在寻找一个解决方案,在那里我可以创建一个变量,然后导入带有该变量的剧本 这是我的密码: - name: test hosts: localhost vars: ansible_python_interpreter: /usr/bin/python3 playbook1: server_provision playbook2: server_provision_oracle gather_facts: no tasks: - name: defi

循环Ansible中的字典列表,而不知道键名

我一直在寻找解决方案,到目前为止似乎没有一个有效 我将任务输出注册为: “操作列表.启动工件”:[ { “account-troubletree-v1-1-0-18-21001”:"docker run-d-p 21001:8080-v/apps/projects/logs/account-troubletree-v1-0-18-21001:/logs-v/apps/projects/logs/account-troubletree-v1-1-0-18-21001/.configmap:/tib

ansible-pass模式作为额外变量

如何修复以下playbook,以接受文件模式作为额外变量,并删除具有比给定天数更早的匹配文件模式的文件 --- - hosts: destination_servers vars: file_pattern: "{{ file_name }}" tasks: - name: Find all files older than {{ age }} days find: path: '{{ dir }}' file_type: fi

Ansible 任务出现问题请确保Nginx已停止

我编写了一个角色来运行reactos应用程序。当单个任务出现问题时,确保停止Nginx。我犯了一个奇怪的错误 如果我从角色中删除此点,应用程序将成功关闭,但我希望它也能使用它 以前的任务效果很好 - name: Ensure nginx is not installed apt: name: nginx state: absent 但这不起作用 - name: Ensure that Nginx is stopped ansible.builtin.systemd:

如何将使用的词典列表与Ansible中的\u项组合

我现在正在研究简单防火墙,它只是iptables规则的分组列表。对于配置,我使用字典列表,根据模板生成文件 firewall_v4_input: - { group: "haproxy", rule: "-p tcp -m multiport --dport 80,443 -j ACCEPT" } firewall_v4_output: - { group: "haproxy", rule: "-p tcp

使用ansible awx进行滚动升级

我目前正在使用ansible awx,并尝试为elasticseach群集创建滚动升级工作流作业。 我有一个模板工作流,理想情况下可以为不同的主机逐个执行其他模板工作流 目前,我在每个内部模板中都定义了一个限制,但当我运行它时,它会被一个空限制覆盖,并且基本上会为整个库存运行第一个模板 有没有办法让大模板不覆盖内部限制?我不完全确定您在这里要做什么。如果您在播放过程中完成了将服务从负载中取出、关闭、更新、重新启动和重新加载的整个过程,则可以在播放中添加serial选项,并且一次只执行少量操作。

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