久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Ansible自動(dòng)化運(yùn)維安裝與簡(jiǎn)單使用

      Ansible是什么

      Ansible 簡(jiǎn)單的說(shuō)是一個(gè)配置管理系統(tǒng)(configuration management system)。你只需要可以使用 ssh 訪問你的服務(wù)器或設(shè)備就行。它也不同于其他工具,因?yàn)樗褂猛扑偷姆绞?,而不是?puppet 等 那樣使用拉取安裝agent的方式。你可以將代碼部署到任意數(shù)量的服務(wù)器上。

      Ansible能做什么

      ansible可以幫助我們完成一些批量任務(wù),或者完成一些需要經(jīng)常重復(fù)的工作。

      比如:同時(shí)在100臺(tái)服務(wù)器上安裝nginx服務(wù),并在安裝后啟動(dòng)它們。

      比如:將某個(gè)文件一次性拷貝到100臺(tái)服務(wù)器上。

      比如:每當(dāng)有新服務(wù)器加入工作環(huán)境時(shí),你都要為新服務(wù)器部署某個(gè)服務(wù),也就是說(shuō)你需要經(jīng)常重復(fù)的完成相同的工作。 這些場(chǎng)景中我們都可以使用到ansible。

      Ansible特性

      ? 模塊化:調(diào)用特定的模塊,完成特定任務(wù)
      ? 有Paramiko,PyYAML,Jinja2(模板語(yǔ)言)三個(gè)關(guān)鍵模塊
      ? 支持自定義模塊
      ? 基于Python語(yǔ)言實(shí)現(xiàn)
      ? 部署簡(jiǎn)單,基于python和SSH(默認(rèn)已安裝),agentless
      ? 安全,基于OpenSSH
      ? 支持playbook編排任務(wù)
      ? 冪等性:一個(gè)任務(wù)執(zhí)行1遍和執(zhí)行n遍效果一樣,不因重復(fù)執(zhí)行帶來(lái)意外情況
      ? 無(wú)需代理不依賴PKI(無(wú)需ssl)
      ? 可使用任何編程語(yǔ)言寫模塊
      ? YAML格式,編排任務(wù),支持豐富的數(shù)據(jù)結(jié)構(gòu)
      ? 較強(qiáng)大的多層解決方案

      Ansible架構(gòu)

      Ansible自動(dòng)化運(yùn)維安裝與簡(jiǎn)單使用

      Ansible工作原理

      Ansible自動(dòng)化運(yùn)維安裝與簡(jiǎn)單使用

      Ansible主要組成部分功能說(shuō)明

       ? PLAYBOOKS:
                  任務(wù)劇本(任務(wù)集),編排定義Ansible任務(wù)集的配置文件,由Ansible順序依次執(zhí)行,通常是JSON格式的YML文件
      ? INVENTORY:
                  Ansible管理主機(jī)的清單/etc/anaible/hosts
      ? MODULES:
                  Ansible執(zhí)行命令的功能模塊,多數(shù)為內(nèi)置的核心模塊,也可自定義,ansible-doc –l 可查看模塊
      ? PLUGINS:
                  模塊功能的補(bǔ)充,如連接類型插件、循環(huán)插件、變量插件、過濾插件等,該功能不常用
      ? API:
                  供第三方程序調(diào)用的應(yīng)用程序編程接口
      ? ANSIBLE:
                  組合INVENTORY、 API、 MODULES、PLUGINS的綠框,可以理解為是ansible命令工具,其為核心執(zhí)行工具

      注意事項(xiàng)

      ? 執(zhí)行ansible的主機(jī)一般稱為主控端,中控,master或堡壘機(jī)
      ? 主控端Python版本需要2.6或以上
      ? 被控端Python版本小于2.4需要安裝python-simplejson
      ? 被控端如開啟SELinux需要安裝libselinux-python
      ? windows不能做為主控端

      安裝Ansible

      以CentOS為例

      安裝環(huán)境查看

      Ansible自動(dòng)化運(yùn)維安裝與簡(jiǎn)單使用

      安裝

      yum -y install ansible

      查看版本

      Ansible自動(dòng)化運(yùn)維安裝與簡(jiǎn)單使用

      Ansible 功能詳解

      配置文件

      配置文件或指令 描述
      /etc/ansible/ansible.cfg    主配置文件,配置ansible工作特性
      /etc/ansible/hosts  主機(jī)清單
      /etc/ansible/roles/ 存放角色的目錄
      /usr/bin/ansible    主程序,臨時(shí)命令執(zhí)行工具
      /usr/bin/ansible-doc    查看配置文檔,模塊功能查看工具
      /usr/bin/ansible-galaxy 下載/上傳優(yōu)秀代碼或Roles模塊的官網(wǎng)平臺(tái)
      /usr/bin/ansible-playbook  定制自動(dòng)化任務(wù),編排劇本工具
      /usr/bin/ansible-pull  遠(yuǎn)程執(zhí)行命令的工具
      /usr/bin/ansible-vault  文件加密工具
      /usr/bin/ansible-console    基于Console界面與用戶交互的執(zhí)行工具

      Ansible 配置文件

       Ansible 配置文件/etc/ansible/ansible.cfg (一般保持默認(rèn))
      ? [defaults]
      ? #inventory = /etc/ansible/hosts # 主機(jī)列表配置文件
      ? #library = /usr/share/my_modules/ # 庫(kù)文件存放目錄
      ? #remote_tmp = $HOME/.ansible/tmp #臨時(shí)py命令文件存放在遠(yuǎn)程主機(jī)目錄
      ? #local_tmp = $HOME/.ansible/tmp # 本機(jī)的臨時(shí)命令執(zhí)行目錄
      ? #forks = 5 # 默認(rèn)并發(fā)數(shù)
      ? #sudo_user = root # 默認(rèn)sudo 用戶
      ? #ask_sudo_pass = True #每次執(zhí)行ansible命令是否詢問ssh密碼
      ? #ask_pass = True      #連接時(shí)提示輸入ssh密碼
      ? #remote_port = 22    #遠(yuǎn)程主機(jī)的默認(rèn)端口,生產(chǎn)中這個(gè)端口應(yīng)該會(huì)不同
      ? #log_path = /var/log/ansible.log #日志
      ? #host_key_checking = False # 檢查對(duì)應(yīng)服務(wù)器的host_key,建議取消注釋。也就是不會(huì)彈出

      試驗(yàn)規(guī)劃,兩臺(tái)主機(jī)192.168.56.11作為主控端,192.168.56.12被控端

      修改配置文件/etc/ansible/hosts

      [webservers]
      192.168.56.11
      192.168.56.12

      webserves代表一個(gè)組,下面有兩臺(tái)主機(jī)

      執(zhí)行命令

      ansible 192.168.56.11 -m ping

      執(zhí)行失敗

      Ansible自動(dòng)化運(yùn)維安裝與簡(jiǎn)單使用

      非常抱歉哦,竟然是失敗的。為什么呢?Ansible是基于ssh進(jìn)行工作的,那么當(dāng)ssh一臺(tái)遠(yuǎn)程主要的時(shí)候,是不是需要輸入密碼呢?可是這一條指令并沒有提示輸入口令呢

      加參數(shù)-k輸入密碼

      Ansible自動(dòng)化運(yùn)維安裝與簡(jiǎn)單使用

      設(shè)置免密碼登錄(參考如下)

      —————————-參考如下—————————-

      兩臺(tái)Linux主機(jī)需要從其中一臺(tái)ssh至另外一臺(tái)需要手動(dòng)輸入密碼,通過以下設(shè)置免密碼登錄

      生成秘鑰

      ssh-keygen -t rsa

      會(huì)在文件夾/root/.ssh下面生產(chǎn)公鑰和私鑰

      Ansible自動(dòng)化運(yùn)維安裝與簡(jiǎn)單使用

      把秘鑰復(fù)制至需要免密登錄的主機(jī),第一次拷貝需要輸入一次密碼

      ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.1.3.4

      會(huì)在遠(yuǎn)程主機(jī)的文件夾/root/.ssh下面自動(dòng)生成文件authorized_keys 文件內(nèi)容為公鑰id_ras.pub一樣

      Ansible自動(dòng)化運(yùn)維安裝與簡(jiǎn)單使用

      也可以直接把公鑰復(fù)制編輯需要遠(yuǎn)程登錄的主機(jī)的/root/.ssh/authorized_keys文件

      驗(yàn)證能否免密登錄

      ssh 10.1.3.4

      —————————-到此位置—————————-

      Ansible自動(dòng)化運(yùn)維安裝與簡(jiǎn)單使用

      就不會(huì)提示需要輸入密碼了

      Ansible常用命令語(yǔ)法

      ansible <host-pattern> [-m module_name] [options]
      指令 匹配規(guī)則的主機(jī)清單 -m 模塊名 選項(xiàng)
       
      –version 顯示版本
      -a 模塊參數(shù)(如果有)
      -m module 指定模塊,默認(rèn)為command
      -v 詳細(xì)過程 –vv -vvv更詳細(xì)
      –list-hosts 顯示主機(jī)列表,可簡(jiǎn)寫–list
      -k, –ask-pass 提示連接密碼,默認(rèn)Key驗(yàn)證
      -K,–ask-become-pass 提示使用sudo密碼
      -C, –check 檢查,并不執(zhí)行
      -T, –timeout=TIMEOUT 執(zhí)行命令的超時(shí)時(shí)間,默認(rèn)10s
      -u, –user=REMOTE_USER 執(zhí)行遠(yuǎn)程執(zhí)行的用戶
      -U, SUDO_USER, –sudo-user 指定sudu用戶
      -b, –become 代替舊版的sudo 切換

      ansible-doc: 顯示模塊幫助
      ansible-doc [options] [module…]
       
      -a 顯示所有模塊的文檔
      -l, –list 列出可用模塊
      -s, –snippet 顯示指定模塊的簡(jiǎn)要說(shuō)明
       
      例子:#ansible-doc ping
       
      由于ansible的模塊有1378個(gè)(2.4.2.0),并且一直在持續(xù)更新。因此,這個(gè)指令必須要掌握的。
      #ansible-doc -l |wc -l
      1378

      Ansible 的命令執(zhí)行過程以 ansible all -m command -a ‘ls -l /’ -vvv 這條命令為例,根據(jù)顯示的信息時(shí)行解讀

      1. 加載自己的配置文件,默認(rèn)/etc/ansible/ansible.cfg
          Using /etc/ansible/ansible.cfg as config file
       
      2.匹配主機(jī)清單
          Parsed /etc/ansible/hosts inventory source with ini plugin
       
      3. 加載指令對(duì)應(yīng)的模塊文件,如command,生成.py的文件到本機(jī)的臨時(shí)目錄,這個(gè)目錄就是在/etc/ansible/ansible.cfg定義的
          Using module file /usr/lib/python2.7/site-packages/ansible/modules/commands/command.py
          PUT /tmp/tmp4JvsLH TO /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/command.py
       
      4. 通過ansible將模塊或命令生成對(duì)應(yīng)的臨時(shí)py文件,并將該文件傳輸至遠(yuǎn)程服務(wù)器的對(duì)應(yīng)執(zhí)行用戶$HOME/.ansible/tmp/ansible-tmp-數(shù)字/XXX.PY文件,
          這個(gè)目錄就是在/etc/ansible/ansible.cfg定義的
          ( umask 77 && mkdir -p “` echo /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861 `” ….)
          sftp> put /tmp/tmp4JvsLH /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/command.pyn’
       
      5. 給文件+x 權(quán)限
          ‘chmod u+x /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/ /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/command.py && sleep 0’
       
      6. 執(zhí)行并返回結(jié)果
          ‘/usr/bin/python /root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/command.py;
       
      7. 刪除臨時(shí)py文件,sleep 0退出
          rm -rf “/root/.ansible/tmp/ansible-tmp-1517301292.6-155771303493861/” > /dev/null 2>&1 && sleep 0
       
      8.斷開遠(yuǎn)程主機(jī)連接
          ‘Shared connection to 7-db-3.hunk.tech closed.rn’)

      執(zhí)行結(jié)果狀態(tài)

       ? 綠色:執(zhí)行成功并且不需要做改變的操作
       
      ? ×××:執(zhí)行成功并且對(duì)目標(biāo)主機(jī)做變更
       
      ? 紅色:執(zhí)行失敗

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)