设为首页 收藏本站
查看: 1315|回复: 0

[经验分享] Ansible介绍/安装/入门

[复制链接]

尚未签到

发表于 2018-1-2 15:25:25 | 显示全部楼层 |阅读模式
  http://docs.ansible.com/ansible/
  https://galaxy.ansible.com/
  Ansible是一个IT自动化工具。 它可以配置系统,部署软件,并编排更先进的IT任务,如持续部署或零停机滚动更新。
  Ansible的主要目标是简单易用。 它还强调了安全性和可靠性,具有最少的移动部件,用OpenSSH来传输(使用加速socket模式和pull模式作为替代方案)
  是一种针对人们的可审计性设计的语言 - 甚至这些人都不熟悉项目。
  我们认为简单性与各种规模的环境相关,因此我们为所有类型的繁忙用户设计:开发人员,系统管理员,发布工程师,IT经理以及两者之间的所有人员。 可适用于管理所有环境,从具有少量实例的小型设置到具有数千个实例的企业环境。
  可以无代理的方式管理机器。 从来没有一个问题,如何升级远程守护程序或无法管理系统的问题,因为守护程序被卸载。 由于OpenSSH是同行评议的开源组件之一,安全性大大降低。 可解密是分散的 - 它依赖于您现有的操作系​​统凭据来控制对远程机器的访问。 如果需要,Ansible可以轻松连接到Kerberos,LDAP和其他集中式身份验证管理系统。
  源代码:https://github.com/ansible/ansible/
  安装
  安装扩展源  http://fedoraproject.org/wiki/EPEL
  yum install ansible
  我们首先显示的不是“可配置”的强大的配置/部署/编排功能。 这些功能是由单独的部分所涵盖的playbooks来处理的。

Remote Connection Information
  在开始之前,了解Ansible如何通过SSH与远程机器通信非常重要。
  默认情况下,Ansense 1.3及更高版本将尽可能使用本机OpenSSH进行远程通信。 这启用了ControlPersist(性能特征),Kerberos以及~/.ssh/config选项,例如Jump Host设置。 但是,当使用Enterprise Linux 6操作系统作为控制机器(Red Hat Enterprise Linux和衍生产品如CentOS)时,OpenSSH版本可能太旧,无法支持ControlPersist。 在这些操作系统上,Ansible将会使用一个名为“paramiko”的OpenSSH的高质量Python实现。 如果您希望使用Kerberized SSH等功能,请考虑使用Fedora,OS X或Ubuntu作为控制台,直到您的平台可以使用较新版本的OpenSSH,或者在Ansible中加入“加速模式”。 见加速模式 。
  在最新版本中,包括Ansible 1.2版本,默认是paramiko。 必须使用-c ssh选项或配置文件中设置本地SSH。
  偶尔会遇到不支持SFTP的设备。 这是罕见的,但如果发生,您可以在配置文件中切换到SCP模式。
  虽然这可能是常识,但值得分享:任何管理系统受益于在被管理的机器附近运行。 如果您在云中运行可执行文件,请考虑从云内的计算机运行它。 在大多数情况下,这将比在互联网上更好。
  作为高级主题,Ansible不仅需要通过SSH远程连接。 运输是可插拔的,并且有用于在本地管理某些东西以及管理chroot,lxc和jail容器的选项。 一种叫做“ansible-pull”的模式也可以通过预定的git检查来反转系统并通过系统“电话回家”来从中央存储库中提取配置指令。

Your first commands
  现在你已经安装了Ansible,现在该开始一些基础了。
  编辑(或创建) /etc/ansible/hosts并将一个或多个远程系统放在其中。 您的公共SSH密钥应位于这些系统上的authorized_keys中:
  

192.0.2.50  
aserver.example.org
  
bserver.example.org
  

  

  这是一个inventory文件,这里还有更详细的说明: inventory 。
  我们假设您正在使用SSH密钥进行身份验证。 要设置SSH代理以避免重新输入密码,您可以执行以下操作:
  

  $ ssh-agent bash
  
$ ssh-add〜/ .ssh />  

  

  (根据您的设置,您可能希望使用Ansible的 - --private-key选项来指定pem文件)
  现在ping所有节点:
  

$ ansible all -m ping  

  

  可能会尝试使用您当前的用户名远程连接到计算机,就像SSH一样。 要覆盖远程用户名,只需使用'-u'参数即可。
  如果你想访问sudo模式,还有标志:
  

# as bruce  
$ ansible all -m ping -u bruce
  
# as bruce, sudoing to root
  
$ ansible all -m ping -u bruce --sudo
  
# as bruce, sudoing to batman
  
$ ansible all -m ping -u bruce --sudo --sudo-user batman
  

  
# With latest version of ansible `sudo` is deprecated so use become
  
# as bruce, sudoing to root
  
$ ansible all -m ping -u bruce -b
  
# as bruce, sudoing to batman
  
$ ansible all -m ping -u bruce -b --become-user batman
  

  

  (如果您想要使用sudo替换,则可以在Ansible的配置文件中更改sudo实现。传递给sudo(如-H)的标志也可以设置在那里。)
  恭喜! 您已经使用Ansible联系了您的节点。 现在很快就要到:阅读关于Introduction To Ad-Hoc Commands更多的真实案例,探索您可以对不同的模块做些什么,并了解可用的Playbook语言。 可Ansible不仅仅是运行命令,还具有强大的配置管理和部署功能。 还有更多的探索,但你已经有一个完全工作的基础设施!
[iyunv@mhc ~]# ansible all -a "/bin/echo hello"

  109.105.4.65 | SUCCESS | rc=0 >>
  hello
  提示
  运行命令时,可以使用“localhost”或“127.0.0.1”作为服务器名称来指定本地服务器。
  例:
  

  $ ansible localhost -m ping -e'ansible_python_interpreter =“/ usr / bin / env python”'  

  

  您可以通过将其添加到清单文件中来明确指定localhost:
  

localhost ansible_connection = local ansible_python_interpreter =“/ usr / bin / env python”  

主机密钥检查
  可选1.2.1及更高版本默认启用主机密钥检查。
  如果主机被重新安装,并且在'known_hosts'中有一个不同的密钥,这将导致错误消息,直到更正。 如果一个主机不是最初在'known_hosts',这将导致提示确认密钥,这将导致交互式体验,如果使用Ansible,从cron。 你可能不想要这个。
  如果您了解这些含义并希望禁用此行为,可以通过编辑/etc/ansible/ansible.cfg或~/.ansible.cfg :
  

  [ 默认值 ]  
host_key_checking = False
  

  

  或者,这可以由环境变量设置:
  

  $ export ANSIBLE_HOST_KEY_CHECKING = False  

  

  另请注意,paramiko模式的主机密钥检查速度相当慢,因此在使用此功能时也建议切换到“ssh”。
  Ansible将在远程系统日志的远程系统上记录有关模块参数的一些信息,除非任务或播放标有“no_log:True”属性。 这将在后面解释。
  要在控制机器上启用基本日志记录,请参阅配置文件文档并设置“log_path”配置文件设置。 企业用户也可能对安全塔感兴趣。  Tower提供了一个非常强大的数据库日志记录功能,可以根据主机,项目和特定库存查看历史记录,并以图形方式和REST API进行探索。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-430848-1-1.html 上篇帖子: 【Ansible 文档】【译文】入门教程 下篇帖子: 【Ansible 文档】【译文】配置文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表