Ansible:我可以强制include:使用其他路径吗

我有以下问题。我为两种不同的技术保留了两个单独的Ansible项目目录。假设您有一个很好的Ansible设置,并且想要拉一个Ansible项目并使用一些已建立的结构,而不完全集成它 第一个语句符合我的要求。它给出了一个fq路径 调试:msg={{lynx_ansible}/roles/centos_common/centos_{{jdk_provider}}.yml 包括:{lynx_ansible}/roles/centos_common/centos_{{jdk_provider}}.yml

Ansible和Wget

我正在尝试从Ansible playbook中的web服务器中创建一个文件 以下是Ansible代码片段: --- - hosts: all sudo: true tasks: - name: Prepare Install folder sudo: true action: shell sudo mkdir -p /tmp/my_install/mysql/ && cd /tmp/my_install/mysql/ - name: Downloa

ansible galaxy角色因“失败”;没有修改/etc/ansible/roles/”的权限;

tl;dr=OS X用户建议如何解决此权限错误? 我使用OS X 10.10.1,最近安装了Ansible,运行以下程序: sudo pip install ansible --quiet sudo pip install ansible --upgrade 我想从galaxy角色开始安装homebrew,然后运行此角色时出现以下错误: $ ansible-galaxy install geerlingguy.homebrew - downloading role 'homebrew', ow

如何使用Ansible为多台服务器上的多个用户部署多个ssh_密钥?

我的环境由2台web服务器和2台db服务器组成 我的团队中有一个新的开发人员。我需要在每台服务器上部署他的ssh密钥 他必须能够在web服务器上与用户ubuntu和www-data连接,并在db服务器上与用户ubuntu连接 我的服务器配置了Ansible 我该怎么做呢?我通过创建一个ssh密钥任务解决了这个问题,就像这样 在角色/ssh键/tasks/main.yml中: --- - name: add authorized key authorized_key: user={{ item

Ansible:“;变成;当用户使用';无通行证';

我正试图以不同的用户身份在远程计算机上执行“git”任务。 我以我的用户身份登录到机器,这是一个具有NOPASSWD的sudoer 这是这出戏的要点 - name: my play remote_user: francesco tasks: - name: pull repo become: yes become_user: machine_user git: ... 使用“Been:yes”时,我得到一个缺少Been密码的错误(我假设这是用

Ansible查找卷磁盘名

我正试图写一本剧本来格式化某个卷,但我无法决定选择正确的驱动器 这是我正在做的 --- - hosts: all gather_facts: no remote_user: root tasks: - name: create file system on storage lun filesystem: fstype=xfs dev=/dev/mapper/mpath* 我试图匹配mpath之后的任何单个字符,但是*似乎不起作用 通配符在那里不起作用。您需要在附加任

Ansible:从失败的任务重新运行playbook

我只在一台主机上执行playbook 我当前的任务执行流程是: 1) 执行任务 2) 如果任何任务在这段时间内失败,请清理所有内容 3) 从头开始重新运行 这听起来不是很有效。我非常想创建这样的流 1) 执行任务 2) 任务失败.. 3) 如果我们重新运行剧本,ansible应该执行失败任务中的任务。它不应该从一开始就重新运行 为了做到这一点,我试图在任务失败后实现这一点,我试图执行带有“-limit”的playbook,它抛出以下错误 root@centos:/etc/ansible# ans

Ansible剧本:如何将var的内容写入文件

我有一个var,我想把var的内容写到文件中的一行 例如: 变量:文本\u需要\u添加 添加前的文件: 一些线 文本标记文本文本 一些线 添加后的文件: 一些线 文本标记文本\u需要\u添加文本 一些线 我该怎么办? 对不起,我的英语太差了。您可以使用sed命令执行一些魔术: - name: insert string in file shell: sed '/mark/a {{ TEXT_NEED_TO_ADD }}' filename 我并不擅长sed操作,但总体思路是:如果您不能使用

用ansible替换配置文件中的一行

我不熟悉ansible 是否有一种简单的方法可以将/etc/dhcp/interface-br0.conf中以选项域名服务器开始的行替换为更多IP option domain-name-servers 10.116.184.1,10.116.144.1; 我想添加,10.116.136.1我用以下main.yaml创建了一个角色dhcp: --- - name: add all dns servers lineinfile: dest: /etc/dhcp/interface-

在ansible_挂载中打印文件系统

我试图迭代ansible_mounts变量并打印在事实检查期间收集的挂载点。根据这些文件,我希望以下方面能够发挥作用: - debug: msg={{item.mount}} with_items: ansible_mounts 当我在启用事实收集功能的情况下运行playbook时,会出现许多错误。打印主机可访问的所有文件系统的正确方法是什么?看起来ansible_mounts是一个字典列表,所以我可能需要调整语法?我目前正在运行ansible 2.2。此任务显示您想要的信息: -

Ansible,如何在主机资源清册中定义列表?

我有一个剧本,我想在我的主机文件中定义一个字符串列表 这是我的主机文件: [dashboard] 1.2.3.4 dashboard_domain=test site_domain=['one','two','foo', 'bar'] 这是我的剧本,我试图用 但是,使用ansible playbook-i hosts ping.yml运行此playbook会导致以下错误: 任务:[调试]*****************************************************

如何使Ansible playbook在组中的第一台主机上运行?

如何仅在组中的第一个主机上运行剧本 我期待着这样的事情: --- - name: playbook that only run on first host in the group hosts: "{{ groups[group_name] | first }}" tasks: - debug: msg: "on {{ inventory_hostname }}" 但这不起作用,会产生错误: “组”未定义 如何使其工作?您可以使用: hosts: group_na

使用Ansible在Yaml列表上迭代

我在vars.yml文件中定义了一个变量,如下所示: trust_table: ['first_hostname', 'second_hostname', ...] $ cat host_file first_hostname second_hostname ... 我想写一个ansible步骤,迭代这个列表,并将每个主机名写入文件中的新行。基本上,结果如下所示: trust_table: ['first_hostname', 'second_hostname', ...] $ cat h

Ansible limit参数不工作

我的Ansible项目结构如下: 我的appServers在hosts下包含我的主机,如下所示: local ansible_ssh_host=127.0.0.1 staging ansible_ssh_host=<host_ip> ansible_connection=ssh ansible_user=ubuntu ansible_ssh_private_key_file=<key> vara-dev ansible_ssh_host=<host ip&

是否可以为Ansible playbook指定来自两个不同库存文件的组?

My playbook/home/user/Ansible/dist/playbooks/test.yml: [regional_clients]组在/home/user/Ansible/webproj/hosts中指定,[web_clients]组在/home/user/Ansible/regions/hosts中指定 有没有办法让上述工作顺利进行?当前,运行playbook将失败,因为默认清单文件/home/user/Ansible/dist/hosts中未定义[regional_clien

ansible:尝试切换用户时失败(超时错误)

我需要能够登录到远程服务器,切换用户,然后,做任何需要的事情 我玩了ansible并找到了“成为”工具,所以我尝试了它,毕竟。。。它允许你这么做 我的剧本是这样的: - name: Create empty file file: path=touchedFile.txt state=touch become: true become_method: dzdo become_user: userid dzdo touch touchedFile.txt dzdo su -

使用ansible';的stdin参数的可能引用问题;s壳模块

我有一本剧本,里面有以下任务: - set_fact: asg_filter: > .AutoScalingGroups[] | select(.Tags[] | select(.Key == "Role").Value == "myrole") - shell: aws autoscaling --region us-west-2 describe-auto-scaling-groups | jq --compact-output "{{ asg_filt

使用一个主机组中的事实配置另一个具有Ansible的主机组

我正在尝试使用另一组主机[etcd]中的事实配置一组主机[nodes]。这是我的主机文件 [master] kubernetes ansible_ssh_host=10.2.23.108 [nodes] n1 ansible_ssh_host=10.2.23.192 n2 ansible_ssh_host=10.2.23.47 [etcd] etcd01 ansible_ssh_host=10.2.23.11 etcd02 ansible_ssh_host=10.2.23.10 etcd03

Ansible 如何通过从组_vars/all获取的另一个任务项,从shell输出迭代先前的任务结果

我不熟悉Ansible。所以,如果我问的问题已经在其他地方得到了回答,请原谅我 我有以下与Openstack计算/控制器节点相关的要求(每个计算将有多个NIC/IP)。我想从远程主机(清单中的主机文件中定义的主机列表)检索NIC和IPs信息。对于我检索到的每个IP,我想提交dns条目(如果还没有)。因此,基于NIC名称,我的域名后缀将发生变化。 例如: NIC name Domain Suffix -------- ------------- br-ex

在Jinja2/Ansible中计算所需的空间

我试图根据字典中最长的单词来计算所需的空间 似乎变量num不会将其值传递给第二个内部循环 我基本上是在计算空间的大小来正确对齐列 {% for module in modules %} module "{{ module.name }}" { source = "{{ module.source }}" {% set num = 1 %} {% for n in module.vars.keys() %} {% if num < n|length %} {% set

将curl PUT命令转换为ansible uri

我想与具有的seafile服务器交互 到目前为止,我在将POST或GET查询转换到ansible uri模块中时没有遇到任何问题。但是,我在使用PUT查询时遇到了一个问题 以下内容适用于curl: curl -X PUT -d "share_type=group&group_id=<groupid>&permission=rw" -H 'Authorization: Token <mysecrettoken>' -H 'Accept: applicatio

Ansible命令,用于从远程服务器拉取文件并防止文件已存在

使用Ansible,我想从远程服务器(172.19.113.87)复制文件(ansibletest&MariaDB-client-5.1.67-122.el5.x86_64.rpm),但如果文件已经存在,就不应该复制 我尝试了以下方法,但出现了错误: - hosts: webservers vars: ip: 172.19.113.87 tasks: - name: this is to pull local_action: shell 'ls /opt/ansible

使用Ansible在sysctl中设置多个值

我有一个剧本,里面有几个任务,将值设置为sysctl。如何使用sysctl模块在一个任务中设置所有值,而不是为每个设置一个任务 剧本片段: - name: Set tcp_keepalive_probes in sysctl become: yes sysctl: name: net.ipv4.tcp_keepalive_probes value: 3 state: present reload: yes - name: Set tcp_keepaliv

Ansible 无法将清单脚本作为清单进行分析

我的python脚本动态查询并生成JSON文件,如下所示: { "all": { "hosts": [ "192.158.1.1" ], "vars": { "ansible_become_method": "sudo", "ansible_become": "yes" } } } 但是当我执行下面的命令时 ansible -i script.py -m ping 它发出

Ansible 剧本中的角色和任务

我的ansible playbook与下面的代码类似: --- - hosts: localhost connection: local tasks: - name: "Create custom fact directory file: path: "/etc/ansible/facts.d" state: "directory" - name: "Insert custom fact file" copy: src: custom_fact

Ansible—将变量指向vault中变量的语法

试图使用ansible vault保存敏感密码,但我在剧本中找不到正确的语法来检索它 提到(我的重点): 接下来,将所有敏感变量复制到vault文件中,并在这些变量前面加上vault前缀您应该调整vars文件中的变量,以使用jinja2语法指向匹配的vault_uu变量,并确保vault文件是vault加密的 我创建了vault,但我对yml中的jinja2还不够熟悉,无法找到vars.yml文件的正确语法 任何人都可以提供语法帮助,了解如何将剧本中的变量“X”指向vault文件中的变量“vau

如何使用Ansible并行配置apache vhosts 问题

我正在用ansible配置apache vhosts。创建配置需要很多时间 版本信息: ansible剧本2.7.10 Apache/2.4.29 所有虚拟主机都在同一台服务器上。 我使用Apache建议的文件系统结构: 每个站点一个文件(vhost和已用端口),将保存到站点available/443_example.com.conf。然后我生成一个指向已启用站点的符号链接 如果没有任何更改,则按顺序运行34个vhost的配置任务大约需要5分钟 我为apache配置创建了一个角色。我确定了每

Ansible'的等价物是什么;s";什么时候;盐堆中的子句?

对于下面给出的Ansible代码,如何在SaltStack中实现类似的功能(特别是when子句) 我必须为此使用Jinja2模板吗?它看起来像,除非和onlyif只能测试shell命令的返回代码 是的,你必须使用jinja。 差不多 {% if grains['os'] == 'Redhat' %} include: - install-redhat {% endif %} 但我更愿意把各州列在第一位 例如,在top.sls中,您可以 'os:Redhat': - match: gr

使用Ansible Playbook接受Splunk许可协议

我不熟悉使用Ansible Playbooks,在接受与Splunk的许可协议时遇到了问题 每当我运行shell时: "/opt/splunkforwarder/bin/splunk start --accept-license --answer-yes" 我得到了一个持续的锁定,迫使我终止程序 TASK [acceptlicense] *******************************************************************************

Ansible 如何将环境变量传递给sh脚本?

我想在Jenkins文件中创建一个环境变量,它将包含当前工作区(使用Environoment variable workspace)。然后我想在下一阶段将这个新变量传递给sh脚本 我尝试过以下方式声明变量: environment { artefact_path = "${env.WORKSPACE}/temp/unzipped/${artefact_name}/dev" } 但在将其传递给sh脚本之后: sh "ansible-playbook -i inventor

Ansible 错误意外异常,这可能是一个bug:“bool”类型的参数不可编辑

我不明白Ansible有个错误: 错误!意外异常,这可能是一个bug:“bool”类型的参数不可编辑 它发生在我调用var文件的角色中: - name: import pdt vars include_vars: file: "{{ pdt_type }}.yml" {{pdt_type}}.yml包含: pdt_pkg: - { name: "zzz-libs" } - { name: "zzz-core" } 这有什么不对?它真的是一个bug吗?应该使用 您似乎声明了

Ansible 如何将条件中定义的变量用作全局变量?

我想在条件下取出与匹配的所有服务器的ip值 我的ansible剧本如下: - name: Get all the servers with docker installed shell: docker -v failed_when: False register: docker_exists - name: Get the server where docker is installed shell: echo "{{inventory_hostname}}" regist

Ansible 如果重命名ADF对象,则ADF部署失败

我们已经在代码中重命名了ADF管道,并尝试使用“-role:ansible role azure ADF deploy”角色部署它们。但是,构建失败,因为它无法删除现有的ADF对象。我尝试过使用参数“azure\u adf\u max\u delete\u retries:2”,但没有删除旧的adf对象。除了手动删除ADF实例,还有其他方法吗? 以下是供您参考的日志URL: 有人能帮忙吗?谢谢 您的问题不是很清楚(链接不会带您到任何地方),但我认为您正在尝试使用ansible和AFAIK部署A

显示null的已注册变量的Ansible输出

我正在尝试获取shell命令的输出,该命令显示ansible中kubernetes服务的公共ip,如下所示: - name: Get jenkins url shell: "kubectl get svc nginx-ingress-controller -o json | jq '.status.loadBalancer.ingress[0].ip'" register: public_ip - name: Debug debug:

如果不使用shell,如何为Ansible本身设置环境变量?

我想在我的测试区域中的VM上保留tmp目录。此问题有以下解决方案:在ANSIBLE计算机上将ANSIBLE_KEEP_REMOTE_FILES设置为1 问题是ansible机器是本地docker容器,所以我需要确保始终设置此变量。否则我会丢失一些文件。当我重新启动系统并用Ansible启动docker容器时,我失去了这个变量 是否有办法在Ansible configuration=或playbook配置中的某个位置设置此环境变量?为了不忘记这个变量,我需要一个永久的解决方案 谢谢大家! 问:“有

Ansible 为什么剧本是';你不玩吗?

我有一个问题,我尝试启动我的剧本,但我得到一个错误: 错误“任务”不是游戏的有效属性 错误似乎出现在“/root/devops/ansible/playbook2.yml”中:第2行第4列,但可能在文件的其他位置,具体取决于语法问题 令人不快的一行似乎是: - name: nginx ^ here 我的剧本: - name: nginx hosts: all become: yes task: - name: install apt: name=

Ansible lineinfile/regexp/line:为什么要在文件末尾添加行?

我不明白lineinfle是如何工作的,我使用: -名称:配置 线条填充: 路径:/etc/apt/apt.conf.d/50s-upgrades regexp:'^\/\/\${distro\u id}:\${distro\u codename}-更新;' 行:'${distro_id}:${distro_codename}-更新;' 国家:现在 我希望文件中的这一行不会被注释: // "${distro_id}:${distro_codename}-updates"; 与此相反,

在Ansible中尝试多个端口

我正在写一本ansible剧本,为我提供一个web服务器。这个过程的一部分涉及使用geerlingguy/ansible角色安全角色(我使用它来更改默认ssh端口)。但是,由于端口发生了变化,因此在不更改ansible_ssh_port变量的情况下,无法反复运行playbook。这似乎违背了幂等性的全部观点,因为您必须在两次运行之间编辑剧本。所以我想知道是否有一种方法可以描述ansible尝试的2个端口。这样,它将在脚本第一次运行时使用端口22,但所有其他时间都将使用另一个端口 我试图寻找尝试不

Ansible 访问结果列表中的变量

我希望在现有playbook中添加一个步骤,当它找到var_file.yml中指定的特定目录时,该步骤将停止/失败 --- - include_vars: file: var_file.yml - name: Check if instance has been Patched stat: path: '{{ item }}' register: patchDir loop: "{{ work_dir }}" - fail: msg="This system ha

如何从Gitlab CI运行Ansible Playbook?

我试图在Gitlab ci中创建一个管道来运行ansible剧本。 这是我的.gitlab-ci.yml文件: 图像:“我的可解析图像” 在脚本之前: -eval$(ssh代理-s) -echo“$SSH_PRIVATE_KEY”| tr-d'\r'| SSH add- -mkdir-p~/.ssh -chmod 700~/.ssh 建造: 脚本: -ansible playbook-i inventory-u root--private key“$SSH_private_key”playboo

ansible:角色的多个var文件?

在我找到的所有ansible文档中,[role]/vars/main.yml文件被引用为角色变量的位置 使用[role]/defaults/main.yml可以进行一些定制,然后可以被[role]/vars/main.yml覆盖 如果我想解决许多场景,比如说基于一个主变量加载一组变量,然后将分组的变量放入每个文件中,如 [role]/vars/main.yml [role]/vars/scenario1.yml [role]/vars/scenario2.yml [role]/vars/scen

Ansible 从主机中从“--limit”选项中获取数据

我有以下剧本(playbook.yaml) -hosts:myfirsthost[0] 任务: -姓名:获取令牌 啜食: src:/var/mytoken 寄存器:令牌文件 -主持人:myotherhosts 变量: fileToken:{{hostvars[groups['myfirsthost'][0]['tokenFile']['content']| b64解码|替换('\n','')} 任务: -调试: msg:token{{fileToken} 当我为所有主机运行它时,它工作正常 但

Ansible 詹金斯::错误:需要一个步骤@&;将生成的值传递给下游作业

我有一个python文件peekaboo.py,它在独立的exec上输出一个json,如下所示 python文件输出(JSON): 然而,当jekins试图运行相同的python文件时,它失败了,如下所示 顺便说一句,假设这个python文件为pki_客户端_cacert_密码、db_url、fernet_密钥设置值,这些值将传递给ansible playbook pipeline { parameters { string(defaultValue: '', descripti

如果找到每个元素的条件匹配,如何在ansible中循环并执行后续任务

我有一个用例,在vars/main.yaml中,我定义了如下的服务器成员,它是动态的,有时vars将有3个服务器,有时是4个,等等: server_name: - server1 - server2 - server3 我有一个任务,在从loadbalancer后端成员获取服务器后,该任务会生成一些服务器的输出列表,如下所示: "ansible_facts": { "server_and_its_status": [

从上一个任务获取更改/失败的主机列表| Ansible

全部, 示例:如果一个剧本有20台主机,并使用Serial:10运行它们,那么bellowshell命令一次在10台主机上运行。一旦完成,就会调用处理程序任务,其中创建dict(_dict)的任务不会给出字典输出,因此第二个任务-失败的主机-失败,并出现上述错误 - name: Run some shell command shell: "echo 2 > /abcd/abcd.txt" when: random condit

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