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

下载地址:https://pypi.python.org/pypi/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
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配置详解
  1. defaults 默认配置项2. privilege_escalation 执行命令的用户权限设置3. paraiko_connextion paramike插件设置4. ssh_connection ssh连接设置5. accelerate6. 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