标签: ansible

如何使用Ansible创建目录

如何使用Ansible playbook www/srv基于Debian的系统上创建目录?

filesystems directory ansible

347
推荐指数
8
解决办法
31万
查看次数

在Ansible主机上运行命令

是否可以在Ansible主机上运行命令?

我的方案是我想从内部托管的git服务器进行结账(并且在公司防火墙外部无法访问).然后我想将结帐(tarballed)上传到生产服务器(外部托管).

目前,我正在考虑运行一个执行结帐的脚本,对其进行压缩,然后运行部署脚本 - 但是如果我可以将其集成到Ansible中,那将更为可取.

deployment ansible

233
推荐指数
5
解决办法
17万
查看次数

安全地将Ansible剧本限制在一台机器上?

我正在使用Ansible进行一些简单的用户管理任务和一小组计算机.目前,我将我的手册设置为hosts: all,我的主机文件只是一个列出了所有机器的组:

# file: hosts
[office]
imac-1.local
imac-2.local
imac-3.local
Run Code Online (Sandbox Code Playgroud)

我发现自己经常不得不针对一台机器.该ansible-playbook命令可以限制这样的播放:

ansible-playbook --limit imac-2.local user.yml
Run Code Online (Sandbox Code Playgroud)

但这似乎有点脆弱,特别是对于潜在的破坏性剧本.离开limit旗帜意味着剧本将在任何地方运行.由于这些工具偶尔会被使用,所以似乎值得采取措施来简化播放,因此我们不会在几个月后意外地进行核实操作.

是否有将playbook运行限制为单台机器的最佳实践?理想情况下,如果省略一些重要细节,剧本应该是无害的.

ansible ansible-playbook

207
推荐指数
11
解决办法
19万
查看次数

为Ansible指定sudo密码

如何以非交互方式为Ansible指定sudo密码?

我正在运行这样的Ansible剧本:

__CODE__

但我想像这样运行它:

__CODE__ --sudo通= 12345

有办法吗?我想尽可能地自动化我的项目部署.

ansible

202
推荐指数
13
解决办法
24万
查看次数

如何在命令行中将变量传递给ansible playbook?

我是ansible的新手并且想知道如何这样做,因为以下不起作用

ansible-playbook -i '10.0.0.1,' yada-yada.yml --tags 'loaddata' django_fixtures="tile_colors"
Run Code Online (Sandbox Code Playgroud)

django_fixtures我的变量在哪里?

variables command-line command-line-arguments ansible ansible-playbook

189
推荐指数
10
解决办法
26万
查看次数

如何使用远程系统上的Ansible任务移动/重命名文件

如何使用远程系统上的Ansible模块移动/重命名文件/目录?我不想使用命令/ shell任务,我不想将文件从本地系统复制到远程系统.

ansible

184
推荐指数
8
解决办法
23万
查看次数

Ansible失败了/ bin/sh:1:/ usr/bin/python:找不到

我遇到了一个我以前从未见过的错误.这是命令和错误:

$ ansible-playbook create_api.yml

PLAY [straw] ******************************************************************

GATHERING FACTS ***************************************************************
failed: [104.55.47.224] => {"failed": true, "parsed": false}
/bin/sh: 1: /usr/bin/python: not found


TASK: [typical | install required system packages] *****************************
FATAL: no hosts matched or all hosts have already failed -- aborting


PLAY RECAP ********************************************************************
           to retry, use: --limit @/Users/john/create_api.retry

104.55.47.224               : ok=0    changed=0    unreachable=0    failed=1
Run Code Online (Sandbox Code Playgroud)

这是create_api.yml文件:

---

- hosts: api
  remote_user: root
  roles:
    - api
Run Code Online (Sandbox Code Playgroud)

这是hosts文件:

[api]
104.55.47.224
Run Code Online (Sandbox Code Playgroud)

我可以删除角色部分,它不会进入第一个任务,它将使它只会使它成为行/bin/sh: 1: /usr/bin/python: not found.这可能会发生什么?


注意:如果有人正在ping IP地址并且没有得到响应,您应该知道自从粘贴代码后我已经更改了IP地址.

编辑 …

ansible ansible-playbook

184
推荐指数
10
解决办法
7万
查看次数

如何获取Ansible主机文件中定义的当前计算机的主机名?

我正在设置一个Ansible手册来设置几个服务器.如果当前主机是我的本地开发主机,在我的主机文件中名为"local",那么我只想运行几个任务.我怎样才能做到这一点?我在文档中的任何地方都找不到它.

我在if语句时尝试了这个,但它失败了,因为ansible_hostname解析了创建机器时生成的主机名,而不是你在hosts文件中定义的主机名.

- name: Install this only for local dev machine
  pip: name=pyramid
  when: ansible_hostname == "local"
Run Code Online (Sandbox Code Playgroud)

ansible

160
推荐指数
1
解决办法
16万
查看次数

我在哪里可以获得Ansible预定义变量的列表?

我看到Ansible提供了一些我们可以在playbooks和模板文件中使用的预定义变量.例如,主机IP地址是ansible_eth0.ipv4.address.谷歌搜索和搜索文档我找不到所有可用变量的列表.有人会为我列出它们吗?

ansible ansible-facts

157
推荐指数
6
解决办法
19万
查看次数

如何在ansible playbook中只运行一个任务?

有没有办法只在ansible playbook中运行一个任务?

例如,在roles/hadoop_primary/tasks/hadoop_master.yml.我有"start hadoop job tracker services"任务.我可以运行那一项任务吗?

hadoop_master.yml文件:

---
# Playbook for  Hadoop master servers

- name: Install the namenode and jobtracker packages
  apt: name={{item}} force=yes state=latest
  with_items: 
   - hadoop-0.20-mapreduce-jobtracker
   - hadoop-hdfs-namenode
   - hadoop-doc
   - hue-plugins

- name: start hadoop jobtracker services
  service: name=hadoop-0.20-mapreduce-jobtracker state=started
  tags:
   debug
Run Code Online (Sandbox Code Playgroud)

ansible

155
推荐指数
5
解决办法
12万
查看次数