Ansible 源代码构筑实用性
上周在自学智能化网络管理有关控制技术,该文主要就演示内部网情况下对Ansible的加装演示,源代码加装极为繁杂、乏味,特别是在前述加装操作过程中可能将再次出现各种各样的难题,大部份在加装操作过程中尽可能将维持与我演示的自然环境、加装版完全一致。
1.自然环境预备
试验伺服器预备
服务端192.168.238.134涉嫌端192.168.238.135192.168.238.136
系统版
cat/etc/redhat-releaseCentOS Linux release7.9.2009 (Core)
内核版
uname-r3.10.0-1160.31.1.el7.x86_64
预备依赖包自然环境
加装python-devel和openssl-devel
yum -y install python-devel openssl-devel libffi-devel
下载源代码包文件到自定义文件目录
/releases.ansibleansible/(ansible 官网下载地址)
/pypi.org/(模块包下载地址)
加装ansible所需模块包
2.ansible 基本架构图
2.1Ansible架构简介
1.主机群(Host Inventory):定义ansible管理的主机2.剧本(Playbooks):ansible的任务实用性文件,将多个任务定义在剧本中,由ansible自动执行3.核心模块 (core modules)连接主机实现操作,它依赖于具体的模块来做具体的事情4.扩展模块 (custom modules),根据自己的需求编写具体的模块5.插件(Plugins):完成模块功能的补充6.连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
2.1Ansible 特点
1.不需要代理,不需要客户端2.没有服务端,使用时直接使用命令3.基于模块工作4.默认基于ssh工作5.支持YAML定义剧本
3.依次解压、加装源代码包文件
注:加装操作过程中请依次进行如下顺序加装
加装 setuptools
unzip setuptools-41.0.1.zipcd setuptools-41.0.1python setup.py install
加装pycrypto
tar -xzf pycrypto-2.6.1.tar.gzcd pycrypto-2.6.1python setup.py install
加装 PyYAML
tar -xzf PyYAML-5.1.tar.gzcd PyYAML-5.1python setup.py install
加装MarkupSafe
tar -xzf MarkupSafe-1.1.1.tar.gzcd MarkupSafe-1.1.1python setup.py install
加装Jinja2
tar -xzf Jinja2-2.10.1.tar.gzcd Jinja2-2.10.1python setup.py install
加装ecdsa
tar -xzf ecdsa-0.13.2.tar.gzcd ecdsa-0.13.2python setup.py install
加装simplejson
tar -xzf simplejson-3.16.0.tar.gzcd simplejson-3.16.0python setup.py install
加装pycparser
tar -xzf pycparser-2.19.tar.gzcd pycparser-2.19python setup.py install
加装cffi
tar -xzf cffi-1.12.3.tar.gzcd cffi-1.12.3python setup.py install
加装ipaddress
tar -xzf ipaddress-1.0.22.tar.gzcd ipaddress-1.0.22python setup.py install
加装six
tar -xzf six-1.12.0.tar.gzcd six-1.12.0python setup.py install
加装asn1crypto
tar -xzf asn1crypto-0.24.0.tar.gzcd asn1crypto-0.24.0python setup.py install
加装pyasn1
tar -xzf pyasn1-0.4.5.tar.gzcd pyasn1-0.4.5python setup.py install
加装PyNaCl
tar -xzf PyNaCl-1.3.0.tar.gzcd PyNaCl-1.3.0python setup.py install
加装cryptography
tar -xzf cryptography-2.6.1.tar.gzcd cryptography-2.6.1python setup.py install
加装paramiko
tar -xzf paramiko-2.4.2.tar.gzcd paramiko-2.4.2python setup.py install
加装ansible
tar-xzfansible-latest.tar.gzcdansible-2.7.10/python setup.py install
加装完成后,检查查看ansible版
ansible --version
4.生成密钥文件实用性主机互信
ssh-keygen-trsa执行上述命令无需进行其它操作,一直点击Enter键即可
注:生成之后会在用户的根目录生成一个 .ssh的文件夹(使用 ls -a或 ll -a 命令可查看)
文件说明:id_rsa : 生成的私钥文件id_rsa.pub :生成的公钥文件know_hosts : 已知的主机公钥清单如果希望ssh公钥生效需满足至少下面两个条件:(1).ssh目录的权限必须是700(2).ssh/authorized_keys文件权限必须是600
4.1实用性主机互信
将本机公钥分发到其它涉嫌制主机伺服器
使用ssh-copy-id 命令实现公钥分发(也可使用其它命令如:scp命令)
ssh-copy-id root@192.168.238.135ssh-copy-id root@192.168.238.136
注:如执行ssh-copy-id时报错提示命令不存在,解决办法参照下述,也可使用scp命令进行公钥分发
yum -y install openssh-clients
5.Ansible 实用性
5.1修改实用性文件
复制示例文件为实用性文件
mkdir/etc/ansiblecp-r/usr/local/ansible/examples/* /etc/ansible/
将大部份被管理的主机加入到/etc/ansible/hosts文件中
1.1可以将大部份主机写入此文件,那么此后所做的操作就会影响大部份写入的主机;1.2可以以[主机组名]的方式定义属于同一组的大部份主机,如定义[test]段,将大部份的web主机的IP或者主机名写入段中,当然一个组中的主机也可以在其他组中再次出现,不一定每个组中的主机都不相同;1.3可以用通配符的方式定义,如node[1:3].a.com,表示定义了node1.a.com node2..a.com和node3.a.com三台主机;1.4可以直接写入主机IP,也可以写入主机名,但是必须保证能解析这些主机名;
这里我专门添加了一个未使用的伺服器IP(192.168.238.137)方便我们下述测试中观察可达节点及不可达节点之间区别
5.2测试ansible受管节点是否可达
ansible test -m ping 执行ping命令对test 组进行存活检测,如对大部份组进行检测可使用 all替换test
6.Ansible 命令格式
ansible命令格式:ansible [-m module_name] [-a args] [options] :指定主机组或IP[-m module_name] : 指定调用模块[-a args] [options] : 传递给模块的参数
6.1Ansible常用命令
ansible test--list-hosts列出执行主机列表ansible-doc-l查看大部份模块 (键入q退出)ansible-doc command查看command模块详细信息ansible-doc-scommand查看command模块详细用法ansible test-mcommand-adf -h对大部份涉嫌伺服器使用df -h 命令ansible web-mcommand-auseradd Tom批量添加用户
想系统了解Ansible的同学也可以参照下如下链接该文
/www.ansible.com.cn/docs/intro_installation.html(Ansible 中文指南)
/www.178linux79792(Ansible 有关该文)
举报/反馈
1.本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2.分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3.不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4.本站提供的源码、模板、插件等其他资源,都不包含技术服务请大家谅解!
5.如有链接无法下载或失效,请联系管理员处理!
6.本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
2.分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3.不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4.本站提供的源码、模板、插件等其他资源,都不包含技术服务请大家谅解!
5.如有链接无法下载或失效,请联系管理员处理!
6.本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!