Ansible 安装
使用pip安装
pip,一个python包管理器。如果还没有安装pip,请安装pip。
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py --user
安装Ansible
$ python -m virtualenv py3.7.0 # Create a virtualenv if one does not already exist
$ source py3.7.0/bin/activate # Activate the virtual environment
$ pip install ansible
Ansible一些概念
Control node
安装了Ansible的机器。你可以运行命令和playbooks。任何一台安装了python的设备除了windows都可以作为 control node。你可以有多个control nodes。
Managed node
通过Ansible管理的网络设备或者称为服务。Managed node有时候也叫做hosts,Ansible不会安装在managed nodes。
Inventory
一张managed nodes列表。一个inventory文件有时候也叫做hostfile。你的inventory可以指定每一台managed node的IP地址。
Modules
Ansible可以执行的最小代码单元。每一个module都有一个特定的用途。你可以使用task调用一个单独的module,也可以使用playbook调用多个modules。
Tasks
Ansible最小的执行单元。你可以通过 ad-hoc 命令执行单个task。
Playbooks
有序的tasks列表。保存这你可以顺序反复执行的tasks。playbooks可以像tasks一样存在变量。使用YAML编写。
配置Ansible
1)ANSIBLE_CONFIG:首先,Ansible命令会检查环境变量,及这个环境变量将指向的配置文件
2)./ansible.cfg:其次,将会检查当前目录下的ansible.cfg配置文件
3)~/.ansible.cfg:再次,将会检查当前用户home目录下的.ansible.cfg配置文件
4)/etc/ansible/ansible.cfg:最后,将会检查在用软件包管理工具安装Ansible时自动产生的配置文件
定义~/py3.7.0/ansible/hosts
localhost
在~/py3.7.0/bin/ 创建ansible.cfg设置默认的hosts文件目录
examples of ansible.cfg
[defaults]
inventory = ~/py3.7.0/ansible/hosts
host_key_checking = False
运行第一个ansible命令
[py3.7.0] -> ansible all -m ping # ~/py3.7.0/bin
localhost | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
[py3.7.0] -> ansible all -a "/bin/echo Hello Ansible!" # ~/py3.7.0/bin
localhost | CHANGED | rc=0 >>
Hello Ansible!
Tips:
默认情况下,Ansible使用SFTP传输文件。如果您要管理的机器或设备不支持SFTP,您可以在配置Ansible时切换到SCP模式Configuring Ansible。