环境准备
系统环境:使用 CentOS-7-x86_64-Minimal 最小化安装;
Python版本:Python-3.7
安装 Ansible
[root@C100 ~]# pip3 install -i https://pypi.douban.com/simple/ paramiko # SSH登陆依赖
[root@C100 ~]# pip3 install -i https://pypi.douban.com/simple/ ansible
如果觉得可以接受 CentOS 默认的 Python2 环境,安装方式如下:
yum install epel-release
yum install ansible
测试 Ansible 是否安装成功:
[root@C100 ~]# ansible --version
测试遇到问题: ansible: command not found
[root@C100 ~]# ansible --version -bash: ansible: command not found
解决思路:通过find / -name "ansible" ,找到ansible的所有目录,创建一个到 /usr/lib 的软链接
[root@C100 ~]# find / -name "ansible" /usr/local/bin/python3.7.4/bin/ansible /usr/local/bin/python3.7.4/lib/python3.7/site-packages/ansible [root@C100 ~]# [root@C100 ~]# ln -s /usr/local/bin/python3.7.4/bin/ansible /usr/bin/ansible [root@C100 ~]# ln -s /usr/local/bin/python3.7.4/bin/ansible-doc /usr/bin/ansible-doc [root@C100 ~]# ln -s /usr/local/bin/python3.7.4/bin/ansible-playbook /usr/bin/ansible-playbook [root@C100 ~]# ln -s /usr/local/bin/python3.7.4/bin/ansible-connection /usr/bin/ansible-connection [root@C100 ~]# [root@C100 ~]# #### 以下组件可以一并处理,也可以在需要使用的时候再捯饬 [root@C100 ~]# ln -s /usr/local/bin/python3.7.4/bin/ansible-config /usr/bin/ansible-config [root@C100 ~]# ln -s /usr/local/bin/python3.7.4/bin/ansible-console /usr/bin/ansible-console [root@C100 ~]# ln -s /usr/local/bin/python3.7.4/bin/ansible-galaxy /usr/bin/ansible-galaxy [root@C100 ~]# ln -s /usr/local/bin/python3.7.4/bin/ansible-inventory /usr/bin/ansible-inventory [root@C100 ~]# ln -s /usr/local/bin/python3.7.4/bin/ansible-pull /usr/bin/ansible-pull [root@C100 ~]# ln -s /usr/local/bin/python3.7.4/bin/ansible-vault /usr/bin/ansible-vault [root@C100 ~]#
ansible.cfg 配置文件
最新版本的 Ansible 无论采用 yum install 或者 pip3 方式安装均无法创建配置文件
下载官方配置文件:https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg
[root@C100 ~]# mkdir /etc/ansible
[root@C100 ~]# cd /etc/ansible/
[root@C100 ansible]# vim ansible.cfg <<< 将官方配置文件复制到这里
解决 SSH Known host key 问题:修改 ansible.cfg
host_key_checking = False
屏蔽 [DEPRECATION WARNING],修改 ansible.cfg
deprecation_warnings = False
hosts 配置文件
最新版本的 Ansible 安装完成之后也不会自动构建 hosts 文件,hosts 文件和 ansible.cfg 文件在同一级目录。下方是官方提供的 hosts 文件示例:
https://raw.githubusercontent.com/ansible/ansible/devel/examples/hosts
https://raw.githubusercontent.com/ansible/ansible/devel/examples/hosts.yaml
创建测试 hosts 文件如下:
[CSR1]
172.16.80.10
[CSR2]
172.16.80.11
[CSR:children]
CSR1
CSR2
[CSR:vars]
ansible_ssh_user='cisco'
ansible_ssh_pass='cisco'
ansible_connection=network_cli
ansible_network_os=ios
[ASA]
172.16.80.80
[ASA:vars]
ansible_ssh_user='admin'
ansible_ssh_pass='cisco'
ansible_connection=network_cli
ansible_become=yes
ansible_become_method=enable
ansible_become_pass='cisco'
ansible_network_os=asa
简单 ping 测试:
[root@C100 ansible]# ansible CSR-1 -m ping -o
172.16.80.10 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"}
[root@C100 ansible]#
[root@C100 ansible]# ansible ASA -m ping -o
172.16.80.80 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"}
[root@C100 ansible]#
其他配置项
- Python 解释器
全局设置:修改 ansible.cfg
interpreter_python = /usr/bin/python3 <<< 在 [defaults] 部分添加选项,指定 Python 解释器
针对设备(组)单独设置:修改 hosts 文件
ansible_python_interpreter=/usr/bin/python3 <<< 在 [xxx:vars] 部分添加属性,指定 Python 解释器
手工指定:-e 选项
ansible ASA -m ping -o -e 'ansible_python_interpreter=/usr/bin/python3'
2019年8月19日,更新软件版本
2019年8月22日,记录配置文件选项
本文由 SHIYL 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Aug 24, 2019 at 02:45 pm