我有以下问题。我为两种不同的技术保留了两个单独的Ansible项目目录。假设您有一个很好的Ansible设置,并且想要拉一个Ansible项目并使用一些已建立的结构,而不完全集成它
第一个语句符合我的要求。它给出了一个fq路径
调试:msg={{lynx_ansible}/roles/centos_common/centos_{{jdk_provider}}.yml
包括:{lynx_ansible}/roles/centos_common/centos_{{jdk_provider}}.yml
我正在尝试从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
osx-yosemiteansible-galaxy
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
multiple-instancesansible-playbookauthorized-keys
我的环境由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
我正试图以不同的用户身份在远程计算机上执行“git”任务。
我以我的用户身份登录到机器,这是一个具有NOPASSWD的sudoer
这是这出戏的要点
- name: my play
remote_user: francesco
tasks:
- name: pull repo
become: yes
become_user: machine_user
git: ...
使用“Been:yes”时,我得到一个缺少Been密码的错误(我假设这是用
我正在从另一个用户运行ansible playbook模板,该用户的任务是创建新用户:-
---
- name: Create the application user
user: name={{ gunicorn_user }} state=present
- name: Create the application group
group: name={{ gunicorn_group }} system=yes state=present
- name: Add the ap
我正试图写一本剧本来格式化某个卷,但我无法决定选择正确的驱动器
这是我正在做的
---
- hosts: all
gather_facts: no
remote_user: root
tasks:
- name: create file system on storage lun
filesystem: fstype=xfs dev=/dev/mapper/mpath*
我试图匹配mpath之后的任何单个字符,但是*似乎不起作用 通配符在那里不起作用。您需要在附加任
我只在一台主机上执行playbook
我当前的任务执行流程是:
1) 执行任务
2) 如果任何任务在这段时间内失败,请清理所有内容
3) 从头开始重新运行
这听起来不是很有效。我非常想创建这样的流
1) 执行任务
2) 任务失败..
3) 如果我们重新运行剧本,ansible应该执行失败任务中的任务。它不应该从一开始就重新运行
为了做到这一点,我试图在任务失败后实现这一点,我试图执行带有“-limit”的playbook,它抛出以下错误
root@centos:/etc/ansible# ans
我有一个var,我想把var的内容写到文件中的一行
例如:
变量:文本\u需要\u添加
添加前的文件:
一些线
文本标记文本文本
一些线
添加后的文件:
一些线
文本标记文本\u需要\u添加文本
一些线
我该怎么办?
对不起,我的英语太差了。您可以使用sed命令执行一些魔术:
- name: insert string in file
shell: sed '/mark/a {{ TEXT_NEED_TO_ADD }}' filename
我并不擅长sed操作,但总体思路是:如果您不能使用
我不熟悉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_mounts变量并打印在事实检查期间收集的挂载点。根据这些文件,我希望以下方面能够发挥作用:
- debug: msg={{item.mount}}
with_items: ansible_mounts
当我在启用事实收集功能的情况下运行playbook时,会出现许多错误。打印主机可访问的所有文件系统的正确方法是什么?看起来ansible_mounts是一个字典列表,所以我可能需要调整语法?我目前正在运行ansible 2.2。此任务显示您想要的信息:
-
我有一个剧本,我想在我的主机文件中定义一个字符串列表
这是我的主机文件:
[dashboard]
1.2.3.4 dashboard_domain=test site_domain=['one','two','foo', 'bar']
这是我的剧本,我试图用
但是,使用ansible playbook-i hosts ping.yml运行此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
我在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项目结构如下:
我的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&
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的github项目发布问题之前,我在这里问一下
剧本:
- hosts: localhost
tasks:
- template: >
dest=/tmp/test.xml
src=test.xml.j2
- debug: msg="{{ lookup( 'template', 'test.xml.j2' ) }}"
vars:
- command: 'echo "word1 word2
需要一点帮助,也许只是我必须降级我的ansible安装。在2.1中运行的ansible playbook现在错误为“NameError:global name'get_module'未定义”。升级中有我想用于联网的模块
PLAY [ios] *********************************************************************************************************************************
我需要能够登录到远程服务器,切换用户,然后,做任何需要的事情
我玩了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 -
我有一本剧本,里面有以下任务:
- 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
我正在尝试使用另一组主机[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。所以,如果我问的问题已经在其他地方得到了回答,请原谅我
我有以下与Openstack计算/控制器节点相关的要求(每个计算将有多个NIC/IP)。我想从远程主机(清单中的主机文件中定义的主机列表)检索NIC和IPs信息。对于我检索到的每个IP,我想提交dns条目(如果还没有)。因此,基于NIC名称,我的域名后缀将发生变化。
例如:
NIC name Domain Suffix
-------- -------------
br-ex
我试图根据字典中最长的单词来计算所需的空间
似乎变量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
我有以下需要用户输入的shell脚本:
read -e -p "Enter any string:" varible
echo 'Entered value is ::' $varible > abc.txt
ansible all -a 'sh /home/ansible/test.sh'
我想运行这个脚本,它需要用户在多个服务器中输入,并使用以下yml实现:
- name: Here we start
hosts: all
tasks: # is a list
我想与具有的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-2.xansible-factsansible-template
我的剧本:
- name: JBoss KeyStore and Truststore passwords will be stored in the password vault
#shell: less "{{ vault }}"
shell: cat "{{ vault }}"
register: vault_contents
tags:
- BW.6.1.1.10
with_items:
- "{{ va
使用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
我有一个剧本,里面有几个任务,将值设置为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
ansible-2.xansible-inventory
我的python脚本动态查询并生成JSON文件,如下所示:
{
"all": {
"hosts": [
"192.158.1.1"
],
"vars": {
"ansible_become_method": "sudo",
"ansible_become": "yes"
}
}
}
但是当我执行下面的命令时
ansible -i script.py -m ping
它发出
我的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保存敏感密码,但我在剧本中找不到正确的语法来检索它
提到(我的重点):
接下来,将所有敏感变量复制到vault文件中,并在这些变量前面加上vault前缀您应该调整vars文件中的变量,以使用jinja2语法指向匹配的vault_uu变量,并确保vault文件是vault加密的
我创建了vault,但我对yml中的jinja2还不够熟悉,无法找到vars.yml文件的正确语法
任何人都可以提供语法帮助,了解如何将剧本中的变量“X”指向vault文件中的变量“vau
我正在用ansible配置apache vhosts。创建配置需要很多时间
版本信息:
ansible剧本2.7.10
Apache/2.4.29
所有虚拟主机都在同一台服务器上。
我使用Apache建议的文件系统结构:
每个站点一个文件(vhost和已用端口),将保存到站点available/443_example.com.conf。然后我生成一个指向已启用站点的符号链接
如果没有任何更改,则按顺序运行34个vhost的配置任务大约需要5分钟
我为apache配置创建了一个角色。我确定了每
对于下面给出的Ansible代码,如何在SaltStack中实现类似的功能(特别是when子句)
我必须为此使用Jinja2模板吗?它看起来像,除非和onlyif只能测试shell命令的返回代码 是的,你必须使用jinja。
差不多
{% if grains['os'] == 'Redhat' %}
include:
- install-redhat
{% endif %}
但我更愿意把各州列在第一位
例如,在top.sls中,您可以
'os:Redhat':
- match: gr
我不熟悉使用Ansible Playbooks,在接受与Splunk的许可协议时遇到了问题
每当我运行shell时:
"/opt/splunkforwarder/bin/splunk start --accept-license --answer-yes"
我得到了一个持续的锁定,迫使我终止程序
TASK [acceptlicense] *******************************************************************************
我想在Jenkins文件中创建一个环境变量,它将包含当前工作区(使用Environoment variable workspace)。然后我想在下一阶段将这个新变量传递给sh脚本
我尝试过以下方式声明变量:
environment {
artefact_path = "${env.WORKSPACE}/temp/unzipped/${artefact_name}/dev"
}
但在将其传递给sh脚本之后:
sh "ansible-playbook -i inventor
我不明白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吗?应该使用
您似乎声明了
我想在条件下取出与匹配的所有服务器的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
我们已经在代码中重命名了ADF管道,并尝试使用“-role:ansible role azure ADF deploy”角色部署它们。但是,构建失败,因为它无法删除现有的ADF对象。我尝试过使用参数“azure\u adf\u max\u delete\u retries:2”,但没有删除旧的adf对象。除了手动删除ADF实例,还有其他方法吗?
以下是供您参考的日志URL:
有人能帮忙吗?谢谢 您的问题不是很清楚(链接不会带您到任何地方),但我认为您正在尝试使用ansible和AFAIK部署A
我正在尝试获取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:
标签: Ansible
continuous-deploymentcontinuous-delivery
我想在我的测试区域中的VM上保留tmp目录。此问题有以下解决方案:在ANSIBLE计算机上将ANSIBLE_KEEP_REMOTE_FILES设置为1
问题是ansible机器是本地docker容器,所以我需要确保始终设置此变量。否则我会丢失一些文件。当我重新启动系统并用Ansible启动docker容器时,我失去了这个变量
是否有办法在Ansible configuration=或playbook配置中的某个位置设置此环境变量?为了不忘记这个变量,我需要一个永久的解决方案
谢谢大家!
问:“有
我有一个问题,我尝试启动我的剧本,但我得到一个错误:
错误“任务”不是游戏的有效属性
错误似乎出现在“/root/devops/ansible/playbook2.yml”中:第2行第4列,但可能在文件的其他位置,具体取决于语法问题
令人不快的一行似乎是:
- name: nginx
^ here
我的剧本:
- name: nginx
hosts: all
become: yes
task:
- name: install
apt: name=
我不明白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剧本,为我提供一个web服务器。这个过程的一部分涉及使用geerlingguy/ansible角色安全角色(我使用它来更改默认ssh端口)。但是,由于端口发生了变化,因此在不更改ansible_ssh_port变量的情况下,无法反复运行playbook。这似乎违背了幂等性的全部观点,因为您必须在两次运行之间编辑剧本。所以我想知道是否有一种方法可以描述ansible尝试的2个端口。这样,它将在脚本第一次运行时使用端口22,但所有其他时间都将使用另一个端口
我试图寻找尝试不
我希望在现有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
标签: Ansible
gitlab-cigitlab-ci-runner
我试图在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文档中,[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
我有以下剧本(playbook.yaml)
-hosts:myfirsthost[0]
任务:
-姓名:获取令牌
啜食:
src:/var/mytoken
寄存器:令牌文件
-主持人:myotherhosts
变量:
fileToken:{{hostvars[groups['myfirsthost'][0]['tokenFile']['content']| b64解码|替换('\n','')}
任务:
-调试:
msg:token{{fileToken}
当我为所有主机运行它时,它工作正常
但
我有一个python文件peekaboo.py,它在独立的exec上输出一个json,如下所示
python文件输出(JSON):
然而,当jekins试图运行相同的python文件时,它失败了,如下所示
顺便说一句,假设这个python文件为pki_客户端_cacert_密码、db_url、fernet_密钥设置值,这些值将传递给ansible playbook
pipeline {
parameters {
string(defaultValue: '', descripti
我有一个用例,在vars/main.yaml中,我定义了如下的服务器成员,它是动态的,有时vars将有3个服务器,有时是4个,等等:
server_name:
- server1
- server2
- server3
我有一个任务,在从loadbalancer后端成员获取服务器后,该任务会生成一些服务器的输出列表,如下所示:
"ansible_facts": {
"server_and_its_status": [
全部,
示例:如果一个剧本有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 页