Ansible入门——中文指南学习(1)

Ansible入门——中文指南学习(1)

ansible中文指南:http://www.ansible.com.cn/docs/

1、概述

  • ansible默认通过 SSH 协议管理机器,默认端口是22
  • ansible需要python2.6或2.7的支持,不支持低版本和python3
  • ansible python的指向可以通过 inventory (详见 Inventory文件) 中设置 ‘ansible_python_interpreter’ 变量指向你的 2.X Python
  • 通常我们使用 ssh 与托管节点通信,默认使用 sftp.如果 sftp 不可用,可在 ansible.cfg 配置文件中配置成 scp 的方式。在托管节点上也需要安装 Python 2.4 或以上的版本.如果版本低于 Python 2.5,还需要额外安装一个模块:python-simplejson
  • ansible会默认假定你使用 SSH Key,但是密码也一样可以。通过在需要的地方添加 –ask-pass(-k)选项 来启用密码验证
  • ansible会像SSH那样试图用你的当前用户名来连接你的远程机器。要覆写远程用户名,只需使用’-u’参数. 如果你想访问 sudo模式,这里也有标识(flags)来实现:
# as bruce
$ ansible all -m ping -u bruce
# as bruce, sudoing to root
$ ansible all -m ping -u bruce --sudo
# as bruce, sudoing to batman
$ ansible all -m ping -u bruce --sudo --sudo-user batman

2、Inventory文件

env里面的$ANSIBLE_HOSTS=
可以针对组进行设置,hosts:vars
比如:
[atlanta]
10.6.11.111
10.6.11.112
[atlanta:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com

Inventory 参数的说明

ansible_ssh_host 
将要连接的远程主机名。与你想要设定的主机的别名不同的话,可通过此变量设置。

ansible_ssh_port 
ssh端口号.如果不是默认的端口号,通过此变量设置. 

ansible_ssh_user 
默认的 ssh 用户名 

ansible_ssh_pass 
ssh 密码(这种方式并不安全,我们强烈建议使用 --ask-pass 或 SSH 密钥) ansible_sudo_pass sudo 密码(这种方式并不安全,我们强烈建议使用 --ask-sudo-pass) 

ansible_sudo_exe (new in version 1.8) 
sudo 命令路径(适用于1.8及以上版本) 

ansible_connection 与主机的连接类型.比如:local, ssh 或者 paramiko. Ansible 1.2 以前默认使用 paramiko.1.2 以后默认使用 'smart','smart' 方式会根据是否支持 ControlPersist, 来判断'ssh' 方式是否可行. 

ansible_ssh_private_key_file 
ssh 使用的私钥文件.适用于有多个密钥,而你不想使用 SSH 代理的情况. 

ansible_shell_type 
目标系统的shell类型.默认情况下,命令的执行使用 'sh' 语法,可设置为 'csh''fish'. 

ansible_python_interpreter 
目标主机的 python 路径.适用于的情况: 系统中有多个 Python, 或者命令路径不是"/usr/bin/python",比如 \*BSD, 或者 /usr/bin/python 不是 2.X 版本的 Python.我们不使用 "/usr/bin/env" 机制,因为这要求远程用户的路径设置正确,且要求 "python" 可执行程序名不可为 python以外的名字(实际有可能名为python26). 
与 ansible_python_interpreter 的工作方式相同,可设定如 ruby 或 perl 的路径....

一个主机文件的例子

some_host         ansible_ssh_port=2222     ansible_ssh_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

3、配置文件

ANSIBLE_CONFIG (一个环境变量)
ansible.cfg (位于当前目录中)
.ansible.cfg (位于家目录中)
/etc/ansible/ansible.cfg

会按照以上的顺序逐个查询文件,直到找到第一个为止,并且使用第一个寻找到的配置文件的配置,配置不会被叠加。

asible.cfg中的配置如下:
https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg
具体说明如下:
http://www.ansible.com.cn/docs/intro_configuration.html#paramiko-specific-settings

你可能感兴趣的:(运维-ansible)