ansible学习

下载python3.5安装包:

wget --no-check-certificate https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz

解压到当前目录:

tar -zxvf Python-3.5.0.tgz

cd Python-3.5.0

./configure --prefix=/usr/local/python3.5 --enable-shared

make & make install

ln -s /usr/local/python3.5/bin/python3 /usr/bin/python3

此时运行python3命令的话会报错,缺少.so文件,我们需要进行如下操作:

cp -R /usr/local/python3.5/lib/* /usr/lib64/

ok!此时python3的基础环境已经安装完成!

为什么学习ansible  ansible是Python开发的 所以安装pip 利用pip安装ansible

二、安装pip以及setuptools

毕竟丰富的第三方库是python的优势所在,为了更加方便的安装第三方库,使用pip命令,我们需要进行相应的安装。

1、安装pip前需要前置安装setuptools

wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26

tar -zxvf setuptools-19.6.tar.gz

cd setuptools-19.6

python3 setup.py build

python3 setup.py install

报错: RuntimeError: Compression requires the (missing) zlib module

我们需要在linux中安装zlib-devel包,进行支持。

yum install zlib-devel

需要对python3.5进行重新编译安装。

cd python3.5

make & make install

又是漫长的编译安装过程。

重新安装setuptools

python3 setup.py build

python3 setup.py install

2、安装pip

wget --no-check-certificate  https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb

tar -zxvf pip-8.0.2.tar.gz

cd pip-8.0.2

python3 setup.py build

python3 setup.py install

如果没有意外的话,pip安装完成。

测试:

我们使用pip安装一个python3第三方库: python3 -m pip install paramiko

纳尼!!!!又报错了!

ImportError: cannot import name 'HTTPSHandler'

根据老衲多年的经验,应该是缺少openssl的开发环境,我们继续安装

yum install openssl-devel

继续重新编译安装python3.5

ok,我们终于完成了整个python3环境的安装。

安装ansible

python3 -m pip install ansible 

简单介绍下  ansible有两个文件很重要

ansible.cfg :ansible执行需求的全局性、默认的配置文件

hosts:默认的主机清单文件

/usr/local/python3.5/bin/ansible --version

修改 默认配置文件

export ANSIBLE_CONFIG=/usr/local/python3.5/lib/python3.5/site-packages/ansible/galaxy/data/container_enabled/tests/ansible.cfg

ansilbe 优先级:

优先读取变量下的

ANSIBLE_CONFIG

没有做设置的话会读取当前执行ansible命令下有没有

./ansible,cfg

如果没有回去家目录

~/ansible.cfg

/etc/ansible/ansible.cfg

ansible的配置文件ansible.cfg常用的配置项梳理

1inventory 该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表 inventory = /root/ansible/hosts 

2library Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录 library = /usr/share/ansible 

3forks 设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。 forks = 5 

4sudo_user 这是设置默认执行命令的用户,也可以在playbook中重新设置这个参数 sudo_user = root //注意:新版本已经作了修改,如ansible2.4.1下已经为: default_sudo_user = root 

5remote_port 这是指定连接被关节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的 remote_port = 22

6host_key_checking 这是设置是否检查SSH主机的密钥。可以设置为TrueFalse host_key_checking = False 

7timeout 这是设置SSH连接的超时间隔,单位是秒。 timeout = 20 

8log_path Ansible系统默认是不记录日志的,如果想把Ansible系统的输出记录到人i治稳健中,需要设置log_path来指定一个存储Ansible日志的文件 log_path = /var/log/ansible.log 另外需要注意,执行Ansible的用户需要有写入日志的权限,模块将会调用被管节点的syslog来记录,口令是不会出现的日志中的 

9private_key_file 在使用ssh公钥私钥登录系统时候,使用

     private_key_file=/path/to/file.pem

 

1inventory 该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表 inventory = /root/ansible/hosts 2library Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录 library = /usr/share/ansible 3forks 设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。 forks = 5 4sudo_user 这是设置默认执行命令的用户,也可以在playbook中重新设置这个参数 sudo_user = root //注意:新版本已经作了修改,如ansible2.4.1下已经为: default_sudo_user = root 5remote_port 这是指定连接被关节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的 remote_port = 22 6host_key_checking 这是设置是否检查SSH主机的密钥。可以设置为TrueFalse host_key_checking = False 7timeout 这是设置SSH连接的超时间隔,单位是秒。 timeout = 20 8log_path Ansible系统默认是不记录日志的,如果想把Ansible系统的输出记录到人i治稳健中,需要设置log_path来指定一个存储Ansible日志的文件 log_path = /var/log/ansible.log 另外需要注意,执行Ansible的用户需要有写入日志的权限,模块将会调用被管节点的syslog来记录,口令是不会出现的日志中的 9private_key_file 在使用ssh公钥私钥登录系统时候,使用的密钥路径。 private_key_file=/path/to/file.pem
作者: Jeson老师 
链接:https://www.imooc.com/article/22513
来源:慕课网

原文地址:https://www.cnblogs.com/394510636-ff/p/8955762.html