我想将ansible_default_ipv4更改为指向eth1而不是eth0。我可以在playbook中或通过--extra-vars选项执行此操作吗?ip-4路由获取8.8.8.8以获取默认的ipv4接口。您可以将eth1设置为默认路由,它将返回该路由
或者您可以使用
PS:使用set\u fact覆盖ansible\u default\u ipv4事实,但由于缓存、作用域等原因,它有自己的缺陷,另一个选项总是显式引用接口。
不同的云提供商有不同的约定将私有(通常为10.x.y.z)管理网络
是否可以使用\u item语句为中的每个项目设置标记
假设我有一个任务:
- name: ensure required packages are installed
apt: pkg={{ item }} state=present
with_items:
- package_1
- package_2
sudo: yes
当用户在命令行中定义--标记“second”时,我只希望安装包2
是否可以使用标签表达式或任何其他方式来获得所需的行为?我认为这是不可能的。y
我无法让Ansible的同步模块工作。我有一个非常简单的任务:
- name: Copy project local files
synchronize: src="{{ item.src }}"
dest="{{ item.dest }}"
with_items: project_local_files
当我执行ansible playbook playbook.yml--tags deploy--ask su pass--ask pass时,所有任务都
我正在探索Raspberry PI 2上新安装的Archlinux安装,如下所示:
ansible-i PI2 arch-m设置-c paramiko-k-u报警-vvvv
这对我来说意味着:针对与用户“报警”连接的IP启动设置模块,询问该特定用户的密码。然而,最终尝试连接的用户是“root”
以下是调试响应:
加载了stdout类型的最小回调,v2.0
为用户建立连接:端口22上的root用户到192.168.1.18
192.168.1.18 |遥不可及!=>{
“更改”:错误,
“msg”
各位,
我希望在每台主机上分别重新启动一个服务,并等待用户输入,然后再继续运行到清单中的下一台主机
目前,如果您有以下情况:
- name: Restart something
command: service foo restart
tags:
- foo
- name: wait
pause: prompt="Make sure org.foo.FooOverload exception is not present"
tags:
- foo
它只会提示一次
我的vars文件:
applications:
- name: server_1
deploy: True
branch: master
group: frontend
- name: server_2
deploy: True
branch: master
group: backend
我的任务是
- name: deploy boxer
command: "curl http://example.com?hosts={{item.
我正在尝试通过Ansible为一个节点安装Openstack,使用All-IN-ONE
当我运行setup everything.yml文件时,我收到以下错误:
错误:配置_模板不是Ansible任务或处理程序中的合法参数
您能在这个问题上提供帮助吗?config\u template是OpenStack团队开发的自定义模块。如果您得到ERROR:config_模板不是Ansible任务或处理程序中的合法参数,这可能意味着Ansible找不到模块,也可能是缩进/语法错误。检查模块config_模
标签: Ansible
ansible-playbookselenium-ide
我正在尝试使用Ansible URI模块登录多个网页,并检查环境是否正常工作
目前,我希望它只登录到2个网页(Peoplesoft envs),但我希望有一个vars文件,我可以在每次查看新页面时添加该文件
这是我到目前为止所拥有的,但它似乎没有登录到这两个页面,只有其中一个…任何帮助都将不胜感激
剧本-
---
- name: Run Selenium Test Scripts
hosts: local
vars_files:
- /etc/ansible/uri_module/vars_
标签: Ansible
ansible-2.xvagrant-provision
嗨,我一直在尝试让ansible run composer安装,以便在我的laravel文件中安装composer.json中的所有内容。但是我得到了这个错误:composer不是Ansible任务或处理程序中的合法参数,我不确定是什么导致了这个错误。下面是我剧本的内容
---
- name: Install PHP5+
apt: name={{ item }} update_cache=yes state=latest
with_items:
- git
- mcryp
我试图通过电子邮件发送一个模板文件,该文件在html中有变量,例如{{user\u name},html在我的邮件客户端中正确呈现,但是{{user\u name}}无法解析并显示为字符串{user\u name}
- name: Send e-mail to a bunch of users, attaching files
mail:
host: mail.server.com
subtype: html
subject: email template
b
我在本地机器(WSL;Ubuntu)上安装了Ansible 2.6.1:
我的目标机器正在运行Ubuntu 16.04-LTS
我正在使用此任务安装python3 mysqldb:
- name: "Debian | Install Mysql Client package"
apt:
name: "{{ item }}"
state: present
with_items:
- mysql-client
- python3-dev
请原谅我的无知,我仍在学习Ansible>以下是我试图做的:
-连接到设备✔
-抓取数据✔ (json格式)
-反序列化(获取返回中每个json项的行✔
-写入文件✔
对于以上所有内容,我使用的是副本和Jinja模板
{% for item in results.response %}
{% for value in item.values() %}{{ value }}{% if not loop.last %},{% endif %}{% endfor %}
{
我通过register命令将信息存储在ansible中的可变主机中。然后我尝试一行接一行地打印变量主机的内容(信息1到3)
信息-1
信息-2
信息-3
相反,我在打印时得到了这个结果。
[u'INFORMATION-1'],[u'INFORMATION-2'],[u'INFORMATION-3']
你知道如何消除括号[]、u和撇号(')等不需要的字符,并以我想要的格式打印结果吗
你知道如何消除括号[]、u和撇号(')等不需要的字符,并以我想要的格式打印结果吗
这是因为无论你打印什么东西,实际上
在一个特定的任务中,我想找出分配给当前主机的角色列表,并在此基础上更改一些配置。这可能吗?似乎是一个XY问题……没错——的确如此。我已经找到了解决原始问题的另一种方法,但我想探索这种特殊方法是否可行。这是不可能的。似乎是一个XY问题……没错——是的。我已经找到了解决原始问题的另一种方法,但我想探索这种方法是否可行,这是不可能的。
当无法访问某些主机时,我想继续我的剧本,以执行其他一些任务。然而,ignore_错误似乎不起作用。未打印调试消息。
ansible版本是2.5.4。在这个版本中有没有办法做到这一点
- name: check accessibility
hosts: myhosts
tasks:
- ping:
ignore_errors: yes
- fail:
msg: "Host {{ansible_hostname}} is not accessibl
标签: Ansible
conditional-statementsjinja2
我知道ansible when语句不应该包含任何jinja2分隔符{{}。
但是,在以下情况下,是否有办法避免这种情况:
vars:
xvar: ['/path/file-blabla-abc', '/path/file-blabla-def']
avar: blabla
bvar: def
tasks:
- debug:
msg: "yippie"
when: "'/path/file-{{ avar }}-{{ bvar }}' in xvar"
给了我预期的结果
有人知道一篇好文章解释了如何根据满足的条件填充变量吗
例如:
- name: test
file:
path: "{{ item.path }}"
state: directory
owner: "{{ item.owner }}"
group: "{{ item.group }}"
mode: 0755
loop:
- { path: "{{ file_location }}", owner: "{{ user }}", group:
如何捕获致命的无法访问主机错误:
fatal: [x.x.x.x]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: xxxx@x.x.x.x.: Permission denied (publickey).", "unreachable": true}
似乎忽略错误:yes不起作用,“rescue”也不起作用
使用Ansible 2.8.3确定,解决它:
ignore_u
我正在使用Ansible和a在libvirt中构建一些虚拟机。创建机器后,我需要等待它们获取ip地址。我不能简单地这样做:
- wait_for_connection:
因为在创建虚拟机之后,它们就没有ip地址了。我需要做的是:
- name: wait until node has acquired an address
meta: refresh_inventory
until: ansible_host|ipaddr
retries: 30
delay: 1
- nam
我试图解决的问题是使用JIRARESTAPI向JIRA添加用户。我想在createUser.yml文件中替换的行如下
loop: "{{ users }}")
我想用描述为JSON文件的用户形成的列表来代替它(继续阅读关于如何实现用户和列表的详细信息)
我在这里给你发邮件
createUser.yml文件
- hosts: localhost
gather_facts: false
vars_files:
- vars.yml
tasks:
- name: Cr
我希望更好地调试Ansible脚本,并在已打印的任务名称之外搜索打印角色的选项。我四处寻找,但找不到任何解决办法,因此需要帮助
这就是我目前的输出
### RUN ansible-playbook - install
[WARNING]: Not prompting as we are not in interactive mode
PLAY [Setup system] ************************************************************
T
使用Ansible v2.9.12
问题:当至少有一个主机满足特定条件时,如何为游戏中的所有主机设置变量
例如:
- hosts:
- host1
- host2
- host3
- host4
tasks:
- stat:
path: /tmp/file
register: something
- set_fact
something: true
when: something <
我想创建一个包含文件夹列表的用户词典
users:
name: user1
folders:
- user1-1
- user1-2
name: user2
folders:
- user2-1
- user2-2
name: userN
folders:
- userN-1
- userN-2
我正在尝试动态创建此用户词典列表
- hosts: localhost
gather_facts: no
我想使用ansible vault部署敏感数据。基本上,我希望遍历每个存储库,遍历其配置文件,查找保管在vault中的秘密,并用vault中的加密值替换它们。我希望将存储库的值作为一个变量传递,以查看秘密,但不断出现错误
我尝试了各种方法,但不确定如何使用这些数据结构。
非常感谢您的建议
我的代码结构:
vars:
存储库:[“service1”、“service2”]
服务1:
service1.conf:[“保险库用户1”、“保险库密码1”]
service1.env:[“保险库加密1”]
标签: Ansible
ansible-2.xansible-template
我正在尝试使用检查模式中的模板和复制模块查看我的存储库和目标文件之间的差异。我为每个文件定义了模式和所有权
我的行为是:
如果存在内容差异和模式差异-仅显示内容差异
如果内容相同,但模式不同,则仅显示模式差异
我想要的行为是:
如果存在内容差异和模式差异-显示内容差异和模式差异
如果嵌套堆栈中的变量为true,我将尝试在Ansible中执行任务,但无法使其正常工作
我的列表如下所示:
apache_vhosts_ssl:
- servername: local.host.com
documentroot: "/var/www/html/web"
- servername: webcontent1.com
documentroot: "/var/www/webcontent1.com/web"
- ser
在LogFiles文件夹中,日志位于以下子文件夹中:
试验
W3SVC990866148
W3SVC1150242952
日志文件位于这些文件夹中。Ansible进入测试文件夹,但突然没有。为什么?UZ的管理员权限,根据该权限,用户可以
测试文件夹是手动创建的。如果路径:C:\inetpub\logs\LogFiles\W3SVC990866148 \-则他会看到所有文件
tasks:
- name: Find older logs file
win_find:
我希望改进现有的Ansible剧本。我现在的剧本使用iosfacts查找处于关闭状态的接口(无论是notconnect还是disabled),并仅向这些接口发出关闭命令。我希望更深入一点,做同样的事情,但只在特定的VLAN中的接口上,比如说VLAN 10。这是我目前的剧本:
---
-名称:关闭未使用的端口
主机:交换机
连接:网络\u cli
收集事实:错误
变量:
项目描述:“{{Item.value.description}”
任务:
-姓名:获取信息
ios_事实:
集合子集:接口
注册
我需要创建一个Ansible playbook来删除特定目录中的*.web文件,前提是这些文件存在
操作系统:分操作系统,红帽5x,6x
我尝试了以下方法,但没有成功:
- stat: path=/opt/app/jboss/configuration/*.web
register: web
- shell: rm -rf /opt/app/jboss/configuration/*.web
when: web.stat.exists
rm-rf不关心文件是否存在。它不会抱怨。
事实上,我正在使用Ansible自动化虚拟机的部署过程。我能够在我的ESX环境中部署带有Ansible的VM,此VM将从模板中解包
因此,现在我需要确保VM在部署时已关闭电源。
当我尝试添加命令时:
state: poweredoff
在Ansible中,在我的剧本中,我得到了一个错误。所以我想我需要调整这个设置,可能是在VMware模板的VMX文件中
但是我在哪里可以找到一个特定的参数呢
我希望你们能帮我 请检查你的拼写。从:state:powered_off已执行此操作。仍然收到错误致命:
当我运行这个简单的Ansible剧本时:
- name: EC2 Test Example
hosts: localhost
connection: local
gather_facts: False
tasks:
- name: EC2 Instance
ec2:
# Amazon EC2 key pair name
key_name: my-key-pair
# Amazon EC2 Security Group
如何将shell任务重写为文件模块任务
比如说
- name: Change permissions.
shell: "chown -R {{ project_user }}:{{ project_user }} {{ project_root }}"
如何在帮助下重写上述代码 这很简单:
- file:
path: "{{ project_root }}"
owner: "{{ project_user }}"
group: "{{ project_use
Ansible已安装在单独的ec2实例中。
我需要在ec2实例上安装apache
正在尝试查找已知主机的列表
我运行这个命令
ansible-i hosts all--列出主机
并得到这个消息
[警告]:找不到主机文件:主机
[警告]:提供的主机列表为空,只有本地主机可用
[警告]:没有匹配的主机,无需执行任何操作-列出主机-列出与限制匹配的主机。输入是-i。您的资源清册是一个名为hosts的文件,该文件不存在
您需要从某处创建或生成库存文件。Ansible无法直观地知道您的库存是什么。如果您是
我使用ansible通过本地机器上的kubectl命令将作业/配置发送到我的k8s集群。我有我的清单文件设置,这样每个集群都是它自己的组,每个集群基本上都是到本地主机的连接
# Inventory File
#
[east.k.example.com]
localhost ansible_connection=local
[east2.k.example.com]
localhost ansible_connection=local
然后,
我使用的是一个包特定的命令,它没有现有的模块。命令的输出(stdout)为0或1。我正在尝试将stdout的值分配给一个变量,以便以后在剧本中使用。然而,我似乎无法孤立stdout,它显然正在被捕获
ok: [hostname1] => {
"dmstate": {
"changed": true,
"msg": "All items completed",
"results": [
{
"_ansible_item_resu
我正在尝试使用ansible和ansible vault为用户提供服务。这是我当前的目录结构:
|-- ansible-test.out
|-- group_vars
|-- inventory
|-- roles
| |-- bsd_sudoers
| | |-- tasks
| | |-- templates
| | | `-- cde-admins
| | `-- vars
| `-- bsd_users
| |-- files
|
我有一个非常简单的Ansible任务模块,它执行以下操作:
# Runs a couple of plays successfully...
- name: check if php-fastcgi process running
shell: ps -eaf | grep php5-cgi | grep -v grep
register: php-fastcgi-status
ignore_errors: True
changed_when: False
- debug:
Ansible 2.4.1.0
配置文件=/etc/ansible/ansible.cfg
makedirs中的文件“/usr/lib/python2.7/os.py”,第157行
mkdir(名称、模式)
OSError:[Errno 13]权限被拒绝:“~”
如果有人能帮上忙,我会很感激的
谢谢。在文档中,“Ansible 2.0已经弃用了来自Ansible_ssh_用户、Ansible_ssh_主机和Ansible_ssh_端口的“ssh”以成为Ansible_用户、Ansible_主机
我面临在远程服务器上的两个帐户之间复制ssh密钥的问题。我有一个名为“rmt”的远程服务器,在rmt上我有一个名为“clado”的帐户,我想使用Ansible将/root/.ssh/authorized_keys(在rmt上)复制到/home/clado/.ssh/authorized_keys(在rmt上)
我得到了以下示例代码:
- name: Set authorized key in alternate location
authorized_key:
user: charl
我想在一个变量中以列表的形式存储多个参数
vars:
my_args:
- --verbose
- --quiet
- --verify
然后将列表作为带引号的参数传递给命令。最明显的join
过滤器没有像我预期的那样工作。它生成一个包含所有列表元素的单词,而不是每个列表元素一个单词:
tasks:
- command: printf '%s\n' "{{ my_args | join(' ') }}"
...
changed: [localhost] =>
我对ansible 2.5有问题,我的行为与2.2不同。
当我复制一个文件夹时,其中包含一个文件夹,其中包含一个文件。我得到的是同意而不是改变
以下是我的例子:
- name: copy files share
copy:
dest: "/opt/"
mode: 0644
owner: root
group: root
src: "./share"
运行ansible后得到的状态是OK且未更改。即使它正确地完成了任务。
有人能给我解释一下
如何在ansible模块中使用VirtualNVRapper创建virtualenv。不使用shell命令和mkvirtualenv命令
我尝试将mkvirtualenv作为ansible playbook中的任务之一
- name: Run virtualenvwrapper commands to create a virtualenv
mkvirtualenv: "/home/miniconda3/bin/virtualenvwrapper.sh"
virtualenv:
我尝试在主机上运行角色(Ansistrano),这很好:
---
- name: perform role
hosts: host_one
roles:
- ansistrano
我可以指定角色中包含的其他剧本:
ansistrano_specify_playbook: playbook.yml
但是,现在我必须为另一个主机执行一个任务,这是角色执行过程中剧本的一部分。我无法通过导入剧本实现这一点
- name: include task for other host
我有一个具有以下数据结构的外部数据文件:
---
server1:
service_name:
jboss_prod_1:
enabled: "True"
started: "True"
jboss_prod_2:
enabled: "True"
started: "True"
jboss_prod_3:
enabled: "True"
started: "True"
jboss_prod
标签: Ansible
devopsansible-2.xansible-inventoryansible-vault
如何将存储在环境变量中的ansible vault的密码传递给命令
ansible-playbook play.yml -i hosts --ask-vault-pass
我无法传递文件或使用交互式shell输入密码,因为这些命令是从不支持它们的管道运行的
我试过类似的东西
echo $PASS | ansible-playbook play.yml -i hosts --ask-vault-pass
但这并不奏效
我阅读了文档,但在那里找不到解决方案。github中有一个问题需要解决
作为
我的问题是,当从Rundeck运行ansible playbook时,我应该在哪里设置目标主机?
在Rundeck作业/工作流或ansible playbook中?要使用ansible资源清册,需要添加新的ansible节点源。看一看。尤其是第三步
在Rundeck中添加Ansible节点源,您可以在Rundeck节点列表中看到Ansible资源清册(通常位于/etc/Ansible/hosts)。因此,您可以使用两个节点源(之前定义的Ansible资源清册和Rundeck资源清册:可能是res
我有一个这样的剧本:
- name: Perform an action on a Runtime
hosts: all
roles:
- role: mule_action_on_Runtime
调用时的变量(--extra vars'mule\u runtime=MuleS01-3.7.3-Testing')具有所需主机的前缀(MuleS01)。我想设置主机:MuleS01。如何做到这一点?鉴于您的模式始终是partWant part在otherDash之后关心另一个part您
我正在尝试使用Ansible验证Cisco配置。我想知道除了有效的用户之外,是否配置了其他用户
有效用户:
用户名admin,
用户名只读
无效用户:
用户名secretbackdoor
我试图创建一个用户列表,然后标记任何无效的用户。我目前掌握的守则如下:
---
- hosts: cisco
gather_facts: no
tasks:
- name: show run
ios_command:
commands:
- show run
registe
我在使用json_查询搜索下面的数据结构时遇到了问题,我想从中创建两个单独的列表
对于其成员列表包含子路径键且其值包含特定值的条目,列表1应包含每个字典中的名称键
对于成员列表不包含子路径键且名称包含特定值的条目,列表2应包含每个字典中的名称键
到目前为止,我能找到的最接近的词典是那些其成员词典具有子路径键的词典:
- name: debug
debug:
msg: "{{ device_facts.gtm_a_pools | json_query(query) }}&qu
这是我的角色结构:
$ tree my_role
.
├── my_role
│ ├── defaults
│ │ └── main.yml
│ ├── files
│ │ └── foo.conf
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── README.md
│ ├── tasks
│ │ └── main.yml
│ ├── templ
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 195 页