Ansible介绍
一、Ansbile是什么
Ansible是一个自动化管理IT资源的工具(自动化,管理,IT资源)
Ansible功能:系统环境配置,安装软件,持续集成,热回滚
Ansible优点:无客户端;推送式;丰富的module;基于YAML的Playbook
Ansible缺点:效率低,易挂起;并发性能差
Ansible与其他软件比较:
二、Ansible安装部署
环境准备:Python,Setuptools,Pip(可选)
快速安装:安装pip:easy_install pip
安装ansible:pip install ansible
源码安装:获取源码包:https://github.com/ansible/ansible
或者:git clone github.com/ansible/ansible.git
j进入源目录:cd ./ansible
source ./hacking/env-setup
注:源码安装需要安装一些依赖包:paramiko、PyYAML、Jinja2、httplib2、simplejson、pycrypto等模块,以上模块可以通过pip或easy_install 进行安装。
Redhat/CentOS安装:yum install ansible
Ubuntu安装:apt-get install software-properties-common
add-apt-reposity --yes --update ppa:ansible/ansible
apt-get update
apt-get install ansible
安装成功后,可以使用以下命令检查ansible的安装版本:
ansible --version
三、Ansible配置详解
Ansible的配置文件:ansible.cfg
default默认配置项
privilege_escalation 执行命令的用户权限设置
paramiko_connection paramiko插件的设置
ssh_connection ssh连接设置
accelerate
selinux & colors
ask_pass & ask_sudo_pass
ask_pass: 可以控制,Ansible中playbook是否会自动默认弹出密码输出
ask_sudo_pass:用户使用的系统平台开启了sudo密码的话,应该设置该参数为true
gather_subnet
设置收集的内容:包括all,network,hardware,virtual,facter,ohai
remote_port(一般默认为22端口) & remote_tmp & remote_user(一般默认root用户)
客户机的设置,对登录的端口,临时路径和用户的设置
sudo_exe & sudo_flags &sudo_user
sudo命令相关设置,分别是sudo命令路径,sudo参数,能够使用sudo的user
action_plugins & callback_plugins & connection_plugins & filter_plugins & lookup_plugins & vars_plugins
开发者中心的插件相关功能,开发者可以开发相应得插件来完成自己的功能。分别对应的功能为:激活事件,回调,连接,过滤器,加载路径,任何地方加载
forks
最大开辟的进程数,这个数不易过大,过大性能耗费高,不易过小,过小的话,并发性能低,一般的设置方法:cpu核数*2
module_name
这个是/usr/bin/ansible的默认模块名(-m).默认是‘command' 模块。command模块不支持shell变量,管道和配额。
vault_password_file
这个文件也可以称为一个脚本的形式。使用脚本而不是单纯的文件,必须确保其可以执行并且密码可以在标准输出上打印出来;若脚本需要提示请求数据,请求将会发到标准错误输出中。
pattern
如果没有提供“hosts"节点,这是playbook要通信的默认主机组。默认值是对所有主机通信,建议还是设置个选项。
inventory & library
分别为存放可通信主机的目录和ansibile默认搜寻的模块路径。