Ansible有哪一些功能
- 系统环境配置
- 安装软件
- 持续集成
- 热回滚
Ansible优点
- 无客户端
- 推送式
- 丰富的module
- 基于YAML的playbook #执行集成的脚本
- 商业化支持
Ansible缺点
- 效率低、易挂起
- 并发性能差
#基于SSH做的,所以并发效率低(ssh只能建立一个隧道为串行)
Ansible安装部署、运行
-
Ansible安装
python
yum install zlib zlib-devel gcc openssl openssl-devel -y
1 首先确认Linux操作系统中自带的python 版本时候与自己所需要的版本一致
所有的python版本都在https://www.python.org/ftp/python/ 选择下载
2 进行下载
wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
3 解压
tar -zxvf Python-2.7.11.tgz
4 进入Python-2.7.11目录
./configure --enable-shared --enable-loadable-sqlite-extensions --with-zlib vim ./Modules/Setup
5 找到
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
去掉注释并保存6 然后进行编译和安装
make && make install
7 创建软连接
mv /usr/bin/python /usr/bin/python_bak ln -s /usr/local/bin/python2.7 /usr/bin/python
8 测试 & 报错
[root@VM_131_252_centos Python-2.7.11]# python python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
#编辑配置文件,添加新的一行内容
[root@VM_131_252_centos Python-2.7.11]# vim /etc/ld.so.conf /usr/local/lib #保存退出 #查看添加后的结果,在第一行 [root@VM_131_252_centos Python-2.7.11]# cat /etc/ld.so.conf /usr/local/lib include ld.so.conf.d/*.conf #执行ldconfig加载配置 [root@VM_131_252_centos Python-2.7.11]# ldconfig #再次执行查看版本命令,正确显示 [root@VM_131_252_centos Python-2.7.11]# python -V Python 2.7.11
PIP
在Linux下执行
curl https://bootstrap.pypa.io/get-pip.py | python #进行下载安装
报错:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Collecting pip Could not fetch URL https://pypi.python.org/simple/pip/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping Could not find a version that satisfies the requirement pip (from versions: ) No matching distribution found for pip
解决方法:
yum install openssl openssl-devel -y
安装Ansible
pip install ansible #pip安装ansible pip uninstall ansible #pip卸载ansible
- https://github.com/ansible/ansible #获取Ansible源码
- 解压源码
- 进入源码目录
- 运行source ./hacking/env-setup
centos & redhat
yum install ansible #yum源安装
UBuntu安装
apt-get install software-properties-common apt-add-repository ppa:ansible/ansible apt-get update apt-get install ansible
运行Ansible
-
Ansible配置文件路径
export ANSIBLE_CONFIG
|
./ansible.cfg
|
~/.ansible.cfg
|
/etc/ansible/ansible.cfg
-
Ansible配置文件获取
1. /etc/ansible 目录下
2. https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg
-
Ansible配置详解
- defaults 默认配置项
- privilege_escalation 执行命令的用户权限设置
- paraiko_connextion paramike插件设置
- ssh_connection ssh连接设置
- accelerate
- selinux & colors
-
Ansible配置项
defaults:
ask_pass & ask_sudo_pass
ask_pass #可以控制Ansible 剧本playbook 是否会自动默认弹出密码
ask_sudo_pass #用户使用的系统普通开启了sudo密码的话,就开这个项目(推荐使用root运行)
gather_subset #设置收集的内容;包括all、network、hardware、virtual、facter、ohai
remote_port & remote_tmp & remote_user
#客户机的设置,分别对登录用户和端口,以及临时目录 #这里用户可以使用root,不使用root就需要配置上面的sudo
sudo_exe & sudo_flags & sudo_user
#sudo命令相关设置,分别是sudo命令路径、sudo参数、能使用sudo的user
action_plugins & callback_plugins & connextion_plugins & filter_plugins & lookup_pluins & vars_plugins
#开发者中心的插件相关功能,开发者可以开发相应的插件来完成自己的功能。分别对应的功能未为:激活事件、回调、链接、过滤器、加载路劲、任何地方加载
forks
#最大开辟的进程数,这个数不易过大,过大性能消耗高,不易过小,过小的话,并发性能低。一般的设置的方法是CPI核心数*2
module_name
#这个是/usr/bin/ansible的默认模块名(-m)。默认是“command”模块。command模块不支持shell变量,管道,配额。所以也许你希望把这个参数改为“shell”
vault_password_file
#这个文件也可以称为一个脚本的形式。如果你使用脚本而不是单纯文件的话,请确保它可以执行并且密码可以在标准输出打印出来。如果你的脚本需要提示请求数据,请求将会发到标准错误输出中。(程序自动填写密码)
pattern
#如果没有提供“host”节点,这是playbook要通信的默认主机组。默认值是对所要的主机通信,最好进行个例设置,以防止打错而对大批量主机进行错误修改。
inventory & library
#和库有关,分别是存放可通信主机的目录和Ansblie默认搜寻模块路径 ,inventory默认是在/root/etc
评论