美文网首页
ansible note

ansible note

作者: jaymz明 | 来源:发表于2018-08-02 18:20 被阅读0次

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
      ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架,被redhat收购。
    特点:
    部署简单,只需要在主控端部署ansible环境,被控端无需做任何操作。
    默认使用SSH协议对设备进行管理。
    运维模块较多,可实现日常绝大部分操作。
    配置简单,功能强大,扩展性强。
    支持API及自定义模块,可通过python自动扩展。
    Playbooks定制强大配置,状态管理。
    轻量级,无需客户端安装agent,更新时,只需在操作机进行一次更新即可。
    REST API—AWX平台。
    主要模块:
    Ansible:核心程序。
    HostInventory:记录管理的主机信息,包括端口、密码、ip等。
    Playbooks:yaml格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成功能。
    Coremodules:核心模块,调用核心模块来完成管理任务。
    CustomModules:自定义模块,完成核心模块无法完成的功能,支持多语言。
    ConnectionPlugins:连接插件,Ansible和Host通信使用。

    Ansible任务执行模式:
    Ad-hoc模式(点对点模式)使用单个模板,支持批量执行单条命令。
    Playbook模式(剧本模式)ansible主要管理方式,playbook通过多个task集合完成一类功能,如Web服务的安装部署、数据库服务器的批量备份等。可以简单地把playbook理解为通过组合多条ad-hoc操作的配置文件

    命令执行过程:

    1. 加载自己的配置文件,默认/etc/ansible/ansible.cfg;
    2. 查找对应的主机配置文件,找到要执行的主机或者组;
    3. 加载自己对应的模块文件,如 command;
    4. 通过ansible将模块或命令生成对应的临时py文件(python脚本), 并将该文件传输至远程服务器;
    5. 对应执行用户的家目录的.ansible/tmp/XXX/XXX.PY文件;
    6. 给文件 +x 执行权限;
    7. 执行并返回结果;
    8. 删除临时py文件,sleep 0退出;

    PS:补充
    在开发的过程中,有时候想要在pom.xml里配置个性化的服务,但又不想提交到代码库,方便起见,我们可以自定义pom_own.xml . 这个时候,在mvn启动的时候,用 mvn -f pom_own.xml启动就行了。
    Mvn –t 线程数,可以并行地构建那些相互间没有依赖关系的模块,充分利用多核CPU资源。
    Jenkins node: 在Jenkins环境中分配一个执行器和工作空间。
    声明性Pipeline中有效的基本语句和表达式遵循与Groovy语法相同的规则 ,但有以下例外:
    • Pipeline的顶层必须是块,具体来说是:pipeline { }
    • 没有分号作为语句分隔符。每个声明必须在自己的一行
    • 块只能包含章节, 指令,步骤或赋值语句。
    • 属性引用语句被视为无参数方法调用。所以例如,输入被视为input()

    相关文章

      网友评论

          本文标题:ansible note

          本文链接:https://www.haomeiwen.com/subject/hgmsvftx.html