我正在使用Ansile 2.0.1.0和Docker。
我想连接到容器以在Ansbile中创建一个Docker容器。
也是变量中要管理的容器的名称。
但是当执行时,我得到错误消息。
- name: data container
hosts: localhost
roles:
- role: docker
tasks:
- debug: var=docker_hostname
- name: hogefuga
hosts: "{{docker_hostname}}"
connection: docker
roles:
- hogefuga
- name: Create Container
shell: "docker run --name={{docker_hostname}}"
- name: host add DockerContainer
add_host: name={{ docker_hostname }} group="dockers"
docker_hostname: hoge
TASK [debug] *******************************************************************
ok: [localhost] => {
"docker_hostname": "hoge"
}
ERROR! 'docker_hostname' is undefined
我猜是因为它使用了var来宿主。
我如何修复错误?
我找到安瑟了。有可能在Ansible中定义playbook-global变量吗?
我不知道可以将group_name设置为hosts。
- name: hogefuga
hosts: dockers
connection: docker
roles:
- hogefuga
但是通过使用,我无法从目录中挑选特定的主机。但是我可以使用一些语法,如,但是它查找DNS条目并相应地执行,但是不会检查目录文件。 另一种方法是为每个主机创建单独的目录文件,并由开发人员根据请求的主机调用它们,我不知道这是多少推荐的方法。 最后一个方法是AFAIK通过Python使用,在主机名中使用模式并调用Python程序。 除了这些,您还知道在执行剧本时从目录中选择特定主机/主机组的其他方法吗?
只有脚本才可以重用,避免总敲重复的代码。Ansible脚本的名字叫Playbook,使用的是YAML的格式,文件以yml结尾。 注解:YAML和JSON类似,是一种表示数据的格式。 执行脚本playbook的方法 $ansible-palybook deploy.yml playbook的例子 deploy.yml的功能为web主机部署apache, 其中包含以下部署步骤: 安装apache包;
Ansible提供了一个命令行工具,在官方文档中起给命令行起了一个名字叫Ad-Hoc Commands。 ansible命令的格式是: ansible <host-pattern> [options] ansible命令功能有哪些 先不用深纠命令的语法,讲完module那节,就可以理解语法。先从感官上,通过下面的命令认识下ansible的命令行都可以做什么。 检查ansible安装环境 检查所有的
我使用Web View来显示PDF,它工作得很好,但我想去一个特定的页面,但它不像在WebView中那样工作,我们必须使用URL,所以我在桌面浏览器上工作的URL中传递我的页码。也就是说,如果你知道任何其他方式来显示PDF在应用程序中,将是最受欢迎的,但如果你谈论barteck PDFviewer库,将不会为我工作,因为巨大的大小。我想要一个简单的轻量级PDF查看器,重定向我到一个特定的页面。欢迎
我一直试图使用Ansible Playbook将主机名添加到我的主机文件中。我的Ansible播放如下所示,我的主机文件位于: Playbook成功执行,但新主机名没有添加到Ansible hosts文件中。有人能帮我吗?
什么是 Host Inventory ( 主机目录 、主机清单)? Host Inventory 是配置文件,用来告诉Ansible需要管理哪些主机。并且把这些主机根据按需分类。 可以根据用途分类:数据库节点,服务节点等;根据地点分类:中部,西部机房。 Host Inventory 配置文件: 默认的文件是: /etc/ansible/hosts 可以修改为其它的文件,下一章Ansible进阶中介