ansible基础理论

ansible架构

        ansible是一个IT自动化配置管理工具。能够实现安装  配置 管理 多个主机上的服务

        ansible只能在python2.7环境下执行 系统默认的python2.7不能升级为python3.否则ansible的模块不能正常执行
         控制端和受控端主机上都必须安装python2.7
        ansible的运行原理是把指定的python模块通过ssh协议从主控端拷贝到受控端执行

        ansible是一个无中心节点的架构 主节点和从节点没有心跳连接检查 主节点上只保存了一个受控端的主机清单 只有在执行ansible命令的时候才会通过ssh协议对被控端进行连接
        即使主节点宕机,只要把主机清单拷贝到其他主机同时新主节点和被控节点能够进行ssh连接即可正常运行

       ssh传输协议

            ssh协议是基于tcp连接的协议

            tcp 保存模块文件传输的可靠性

             ssh协议保证传输数据的安全性

ansible术语解释

        ansible inventory   主机清单    主机清单可以是静态的文件 也可以是动态生成的json数据

        ansible Ad-hoc      ansible的模块

        ansible playbook   ansible剧本

      

ansible使用公钥认证授权

        主控端的public SSH key必须在这些受控端系统中的``authorized_keys``中
        必须要把主控端生成的公钥分发到各个受控端节点

         

          

         

          

ansible主机清单

         静态主机清单方式

            192.168.1.1
            192.168.1.1:9200
             jumper ansible_ssh_port=5555 ansible_ssh_host=192.168.1.50 通过"jumper"别名,会连接192.168.1.50:5555
             www[01:50].example.com
             db-[a:f].example.com

              

         动态主机清单方式

           使用配置管理系统经常有一种需求,可能要在其他的软件系统中保存自己的inventory配置信息

           

          ansible -i /home/admin/hosts -m ping webserver
          -i 指定本地的hosts主机清单文件
         如果不使用 -i 指定hosts 默认会去用 /etc/ansible/hosts清单文件

         [webserver]
           web01 192.168.1.1
           mysql 192.168.1.2
          ansible以别名的方式来对受控端进行区分,IP地址太多的时候分不清各个IP的用途

           

 ansible正则匹配

      在Ansible中,Patterns 是指我们怎样确定主控端机器和哪些受控端主机进行交互

       ansible webservers -m service -a "name=httpd state=restarted"
       ansible <pattern_goes_here> -m <module_name> -a <arguments>
       ansible webservers:dbservers:&staging:!phoenix -m service -a "name=httpd state=restarted"
       ansible-playbook site.yml --limit datacenter2

ansible取消ssh认证

        

posted @ 2021-05-14 09:06  不懂123  阅读(125)  评论(0编辑  收藏  举报