ansible Inventory
Posted 会飞の鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible Inventory相关的知识,希望对你有一定的参考价值。
List of Behavioral Inventory Parameters
设置以下变量控制如何可以与远程主机进行交互。
- ansible_connection
- 连接类型到主机。 这可以是任何ansible的连接插件的名称。 SSH协议类型是
smart
,ssh
或paramiko
。 默认是smart
。 下一节将介绍基于非SSH的类型。
一般所有连接:
- ansible_host
- 要连接到的主机的名称,如果与要提供的别名不同。
- ansible_port
- ssh端口号,如果不是22
- ansible_user
- 要使用的默认ssh用户名。
特定于SSH连接:
- ansible_ssh_pass
- 要使用的ssh密码(不要以纯文本形式存储此变量;请始终使用保管库。请参阅变量和保管库 )
- ansible_ssh_private_key_file
- ssh使用的私钥文件。 如果使用多个键,并且您不想使用SSH代理程序,则很有用。
- ansible_ssh_common_args
- 此设置始终附加到sftp , scp和ssh的默认命令行。 有用于配置特定主机(或组)的
ProxyCommand
。 - ansible_sftp_extra_args
- 此设置始终附加到默认sftp命令行。
- ansible_scp_extra_args
- 此设置始终附加到默认的scp命令行。
- ansible_ssh_extra_args
- 此设置始终附加到默认的ssh命令行。
- ansible_ssh_pipelining
- 确定是否使用SSH流水线。 这可以覆盖
ansible.cfg
的pipelining
设置。 - ansible_ssh_executable(在版本2.2中添加)
- 此设置将覆盖使用系统ssh的默认行为。 这可以覆盖
ssh_executable
中的ssh_executable
设置。
特权升级(有关详细信息,请参阅可选权限升级 ):
- ansible_become
- 相当于
ansible_sudo
或ansible_su
,允许强制特权升级 - ansible_become_method
- 允许设置权限升级方法
- ansible_become_user
- 相当于
ansible_sudo_user
或ansible_su_user
,允许设置您成为通过特权升级的用户 - ansible_become_pass
- 相当于
ansible_sudo_pass
或ansible_su_pass
,您可以设置权限升级密码(永远不要以纯文本形式存储此变量;请始终使用保管库 ),请参见变量和保管库 )
远程主机环境参数:
- ansible_shell_type
- 目标系统的shell类型。 除非您将
ansible_shell_executable
设置为非Bourne(sh)兼容shell,否则不应使用此设置。 默认情况下,使用sh
-style语法格式化命令。 将此设置为csh
或fish
将导致在目标系统上执行的命令来跟随这些shell的语法。 - ansible_python_interpreter
- 目标主机python路径。 这对于具有多个Python或不在/ usr / bin / python (如* BSD)的系统或/ usr / bin / python不是2.X系列Python的系统非常有用。 我们不使用/ usr / bin / env机制,因为这要求远程用户的路径设置正确,并且还假定python可执行文件被命名为python,其中可执行文件可能被命名为python2.6 。
- ansible _ * _解释
- 适用于任何类似ruby或perl的工作,就像
ansible_python_interpreter
一样。 这将替代将在该主机上运行的模块的shebang。
2.1版新功能
- ansible_shell_executable
- 这将设置可控制器将在目标计算机上使用的shell,覆盖默认为/ bin / sh的
ansible.cfg
中的executable
。 如果不可能使用/ bin / sh (即/ bin / sh未安装在目标机器上或不能从sudo运行),那么您应该只能改变它。
Ansible-INI主机文件中的示例:
some_host ansible_port = 2222 ansible_user = manager
aws_host ansible_ssh_private_key_file = / home / example / .ssh / aws.pem
freebsd_host ansible_python_interpreter = / usr / local / bin / python
ruby_module_host ansible_ruby_interpreter = / usr / bin / ruby??.1.9.3
非SSH连接类型
使用主机特定参数ansible_connection=<connector>
,可以更改连接类型。 以下基于非SSH的连接器可用:
local
该连接器可以用于将该playbook部署到控制机器本身。
docker
该连接器使用本地Docker客户机将该playbook直接插入Docker容器。 以下参数由此连接器处理:
- ansible_host
- 要连接的Docker容器的名称。
- ansible_user
- 在容器内操作的用户名。 用户必须存在于容器内。
- ansible_become
- 如果设置为
true
,则将使用become_user
在容器内操作。 - ansible_docker_extra_args
- 可以是由Docker理解的任何其他参数的字符串,它们不是特定于命令的。 此参数主要用于配置远程Docker守护程序以使用。
- 以下是如何立即部署到创建的容器的示例:
-
- name: create jenkins container docker_container: docker_host: myserver.net:4243 name: my_jenkins image: jenkins - name: add container to inventory add_host: name: my_jenkins ansible_connection: docker ansible_docker_extra_args: "--tlsverify --tlscacert=/path/to/ca.pem --tlscert=/path/to/client-cert.pem --tlskey=/path/to/client-key.pem -H=tcp://myserver.net:4243" ansible_user: jenkins changed_when: false - name: create directory for ssh keys delegate_to: my_jenkins file: path: "/var/jenkins_home/.ssh/jupiter" state: directory
以上是关于ansible Inventory的主要内容,如果未能解决你的问题,请参考以下文章