1. 程式人生 > >Ansible介紹(2)

Ansible介紹(2)

可用 體驗 不可 paramiko api 上下 不能 app 運維

Ansible:

運維工作:系統安裝(物理機、虛擬機)--> 程序包安裝、配置、服務啟動 --> 批量操作 --> 程序發布  --> 監控

OS Provisioning:
    物理機:PXE、Cobbler
    虛擬機:Image Templates
Configration:
    puppet (ruby)
    saltstack (python)
    chef
    cfengine
Command and Control:
    fabric、func、capistrano

預發布驗正:
    新版本的代碼先發布到服務器(跟線上環境配置完全相同,只是未接入到調度器);

程序發布:
    不能影響用戶體驗;
    系統不能停機;
    不能導致系統故障或造成系統完全不可用;

灰度發布:
    發布路徑:
        /webapp/tuangou-1.1
        /web/app/tuangou
        /webapp/tuangou-1.2

    在調度器上下線一批主機(maintanance) --> 關閉服務 --> 部署新版本的應用程序 --> 啟動服務 --> 在調度器上啟用這一批服務器;

    自動化灰度發布:腳本、發布平臺;

運維工具的分類:
    agent: puppet, func
    agentless: ansible, fabric
        ssh

ansible:
    模塊化,調用特定的模塊,完成特定的任務;
    基於Python語言實現,由Paramiko、PyYAML和Jinja2三個關鍵模塊;
    部署簡單,agentless;
    主從模式
    支持自定義模塊
    支持Playbook

    冪等性:

    配置文件:
        /etc/ansible/ansible.cfg
        /etc/ansible/hosts

Ansible介紹(2)