<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ansible的介紹和安裝

      ansible的介紹和安裝

       

      ansible基于python開發的一種簡單的自動化IT工具,能夠實現批量系統配置、部署、運行命令等功能。無需agent端,因為它是基于ssh來運行。

       

      對于saltstack和puppet來說,它是一款很好的基于ssh方案的替代品,能夠大大地簡化Linux管理員的自動化配置管理與流程控制方式,它利用推送的方式對客戶端系統加以配置,這樣所有的工作都可以在主控制端完成,其命令機制同樣非常強大,可以使用Web UI實現授權管理與配置。

       

      性能特性總結:

       

      它是基于Python語言實現,通過ssh進行管理節點,無需agent端,使用起來很方便。

      Ansible巧妙地利用了現有的組件進行組裝稱一個完整的系統,如:

       

      1.Paramiko組件(python的ssh連接庫)

       

      2. PyYAML組件(python的YAML解析器庫)

       

      3.Jinja2組件(Python的模板引擎庫)

       

       

      受控節點如果是Python 2.4 或 Python 2.5 ,則需額外安裝Simplejson模塊。到Python的2.6或以上版本,就則內置了Simplejson模塊,不需要額外安裝任何其它依賴。值得欣慰的是,目前主流的服務器上內置的Python版本絕多數都是Python 2.6以上版本。

       

      Anshible的核心組件

       

      Ansible在管理節點將ansible模塊通過ssh協議(或者kerberos、LDAP)推送到被管理端執行,執行完之后自動刪除,可以使用SVN等來管理自定義模塊及編排。

       

      Host Inventory: 自定義ansible管理主機,可以進行分組管理,對應的文件是hosts;

       

      Core Modules : ansible核心模塊,ansible中模塊就是用來指定對遠程主機具體的操作,比如,執行命令模塊command、創建文件模塊file等(這是ansible自帶的模塊)

       

      Custom Modules:自定義模塊,如果核心模塊不足以完成某種功能就可以使用任何語言自定義模塊;

       

      Connection Plugins:連接插件是ansible用來連接被管理端的一種方式,比如客戶端運行了SSH服務,ansible利用ssh服務跟客戶端通信,ansible是通過python編寫的,而python有一個paramiko支持并行連接ssh,ansible事實上就是使用paramiko進行連接被管理管,但是它還支持其他的連接方法,但是需要插件(如zeroMQ就是C/S模式工作)

       

      Plugins:第三方插件支持,如Email、logging模塊,只要有python編寫能力就可以自行編寫插件;

      Playbooks: 劇本或編輯是ansible的任務配置文件、將多個任務定義在劇本中有ansible自動執行,Playbooks最大的好處就是支持冪等,也就是說相同的任務不管執行對少次其結果是不變的,帶來的好處就是持續可維護性;

       Anshible的安裝

       一、yum或apt安裝

       二、python安裝

       三、源碼包安裝

       Ansible文件說明:

       [root@bogon ~]# rpm -ql ansible|more

      /etc/ansible

      /etc/ansible/ansible.cfg 主配置文件

      /etc/ansible/hosts 默認定義主機清單文件

      /etc/ansible/roles 用來編排Playbook

       Ansible模塊使用幫助命令,其中使用-l可以查看ansible自帶的模塊

      /usr/bin/ansible-doc

      /usr/bin/ansible-galaxy

      /usr/bin/ansible-inventory

       用來執行playbook的程序

       /usr/bin/ansible-playbook

      /usr/bin/ansible-pull

      /usr/bin/ansible-vault

       Ansible開始簡單實用

       ansible -i /etc/ansible/host all [options]

       其中 -i 用來指定inventory文件,默認就是使用/etc/ansible/hosts,其中all是針對hosts定義的所有主機執行,這里也可以hosts中地址的組名或模塊

       [options]

       -m:指定模塊(默認是command模塊)

      -a: 指定模塊的參數

      -u:指定執行遠程主機的用戶(默認是root)ansible.cfg中可配置

      -s:以sodu方式運行

      -U:sudo到哪個用戶(默認是root用戶)

      -f:指定多個進程并發處理(默認是5)

      --private-key=/path:指定私鑰路徑

      -T:ssh連接超時時間(默認10秒)

      -t:日志輸出到該目錄

      -v:顯示詳細信息

       

      開始使用ansible

       1)定義Inventory

       Inventory文件是用來定義要管理的主機,默認位置在/etc/ansible/hosts,如果不保存在默認位置,也可以使用-i選項指定,被管理的機器可以通過其ip或域名指定。每個中括號[ ]里代表一個分組,其下的機器列表都歸屬這個分組,直到出現下一個中括號位置,通常我們按組來執行任務,同一個組受控服務器用相同的配置,一臺服務器也可以歸屬多個組,以完成多個功能角色的配置,低耦合,模塊化,非常的靈活,如定義一個分組[web],并給定一臺主機:

      cat /etc/ansible/hosts

      [web]

      192.168.20.55 ansible_ssh_user="root" ansible_ssh_pass="111111"

       2)執行ansible的命令

       配置好主機列表之后就可以開始執行批量任務,ansible自帶了ping模塊,可以測試“管理節點”和“受控節點”之間的網絡通訊情況;

       Linux服務器均使用SSH進行遠程管理,SSH服務是服務器必備組件,Ansible在設計上見話是用成本,在“管理節點”上使用SSH連接“受控節點”,通過創建SSH連接來發送指使并執行,達到配置管理的目的,這樣避免了不同版本的操作系統、甚至不同發行版本的操作系統下使用agent帶來的兼容性問題。

       首先,ansible測試管理節點和受控節點的網絡通訊情況:

       不使用免密鑰的時候則安裝sshpass

       centos使用yum安裝

       ubuntu使用apt-get安裝

       

       或者:

       

       

      注意,如果是第一次使用SSH連接agent端,那么就不能使用-k了,要先進行公鑰保存確認,然后再使用-k連接,

       

      ansible第一次遠程連接agent端的時候,agent端先安裝apt -y install python-minimal,再執行ansible命令

      如:

       如果出現這樣的錯誤時則操作下面的步驟:

      遠程端:

       

       服務端:

       

       如果使用密鑰方式登陸SSH,去掉-k參數即可,可以為Ansible設置一個特定的用戶,所有操作均以此用戶來執行,甚至可以為每個“受控節點”設置各自不同的用戶

       

      全局用戶的設置見配置文件/etc/ansible/ansible.cfg,修改[defaults]段落里的remote_user的值即可,也可以通過修改remote_port來定義Ansible去使用非標準的22/SSH端口來進行連接和管理,在沒有給“受控節點”或“受控組”進行特定設置時,Ansible將默認使用全局設置。

       cat /etc/ansible/ansible.cfg

       

       3)Inventory格式的編寫

       Ansible通過讀取默認的主機清單配置/etc/ansible/hosts,可以同時連接到多個遠程主機上執行任務,默認路徑可以通過修改ansible.cfg的hostfile參數地址路徑,主機清單配置格式如下:

       # 指定IP地址并且支持通配;

      [web1]

      192.168.20.16

      192.168.20.[1-9]

       

      # 指定IP加端口;

      [web2]

      192.168.20.1:5252

       

      # 指定域名,必須可以解析;

      [web3]

      www.example.com

       # 組嵌套,當執行組[weball]時就會執行它的所有子組但是子組可以獨立執行;

      [weball:children]

      [web1]

      [web2]

      [web3]

       

      另外可以通過設置ansible_ssh_user來指定用戶在“受控節點”上執行的任務,還可以通過設置ansible_ssh_host來指定不同主機或域名,SSH對應的端口也可以通過ansible_ssh_port來修改,同時還能使用特定的密鑰登陸。

       常用參數如下:

       ansible_connection=ssh #指定連接類型,可以使local、ssh、paramiko;

      ansible_ssh_user=root #用于指定遠程主機的賬號;

      ansible_ssh_pass=password #指定連接到主機的密碼連-k都省了;

      ansible_ssh_port=23 #用于指定遠程主機SSH端口;

      ansible_ssh_privare_key_file=/PATH #用于指定key文件;

      host_key_checking=false #當第一次連接遠程主機,跳過yes/no環節;

      ansible_shell_type #指定目標系統的shell(默認為sh);

      ansible_python_interpreter=/ #指定Python解釋器路徑(默認/USR/BIN/PYTHON);

        

      配置示范:

      cat /etc/ansible/hosts

       

      管理節點操作:

       可能有些場景下,執行配置管理需要用root權限。但由于安全原因,可能會限制root使用SSH登錄。比如:Ubuntu系統默認就不能使用 root 直接SSH登錄系統。Ansible設計時也考慮到此類場景,這種情況下我們只需要告訴Ansible使用sudo的方式執行那些需要 root 權限的配置任務。前提條件是執行Ansible任務的用戶需要有sudo的權限。要設定Ansible使用sudo,執行Ansible的任務的用戶必須要有sudo權限。可以通過修改/etc/sudoers文件或visudo命令來完成,或者直接使用現在符合條件的用戶。參數-sudo即告訴Ansible使用sudo來運行任務,如果sudo需要密碼,則需要添加-k參數,或者在配置文件/etc/ansible/ansible.cfg中添加ask_sudo_pass的屬性。

       Ansible使用鍵值方式接受參數,即傳統的KV方式(key=value)。每次執行任務后,將以JSON格式返回結果。它可以解析復雜的參數,或者用playbooks方式(后面會講解)。Ansible返回會明確指明運行是否成功、是否有變動以及失敗時的錯誤信息。

       通常都用playbooks的方式來執行Ansible任務,少數情況下使用命令行模式運行。過去,我們用Ansible的ping模塊來檢查“受控節點”是否正常受控。而實際上,ping模塊僅僅執行了Ansible最核心的功能并檢查了網絡聯通性,并未做其它實際性動作。

       通常都用playbooks的方式來執行Ansible任務,少數情況下使用命令行模式運行。過去,我們用Ansible的ping模塊來檢查“受控節點”是否正常受控。而實際上,ping模塊僅僅執行了Ansible最核心的功能并檢查了網絡聯通性,并未做其它實際性動作。

       進而產生了setup模塊,它不僅可以反饋“受控節點”的可用性,還會收集一些系統信息以供其它模塊使用。Setup 模塊定義了一系列的采集指令,比如:內核版本、機器名、IP地址等等,并將這些信息保存在內置變量,其它模塊再執行任務時可以直接引用或用于判斷條件等。

       主機變量和組變量

       Inventory除了上述的基本功能外,還可以在主機后面定義變量以便于在playbook中使用,例:

       

       

      不光對主機可以定義變量,對組也可以定義變量。組變量是指賦予給組內所有主機,都可以在playbook中使用,格式如下:

       

       這就是針對web01組設置的組變量,:vars是固定格式,組內的所有變量都可以給組內的主機使用。

       常用模塊的介紹:

       根據Ansible官方的分類,將模塊分為核心模塊和額外模塊;

       核心模塊按功能分類為:云模塊、命令模塊、數據庫模塊、文件模塊、資產模塊、消息模塊、監控模塊、網絡模塊、通知模塊、包管理模塊、源碼控制模塊、系統模塊、單元模塊、web設施模塊、windows模塊等。

       具體可以參看官方頁面ansible-modules-core。這里從官方分類的模塊里選擇最常用的一些模塊進行介紹,介紹之前我們先調整一下hosts文件,把默認用戶和密碼添加到主機中,這樣就不需要指定-u及-k了

      posted @ 2019-11-28 20:18  迷路的大雁  閱讀(353)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻精品中文字幕av| 国产精品伦人视频免费看| 子洲县| 五月国产综合视频在线观看| 国产短视频精品一区二区| 国产草草影院ccyycom| 牲欲强的熟妇农村老妇女视频| 国产超高清麻豆精品传媒麻豆精品| 国产欧美日韩精品第二区| 最新亚洲av日韩av二区| 蜜臀精品国产高清在线观看| 99久久久无码国产麻豆| 国产精品成人一区二区三区| 九九热视频在线免费观看| 欧美性群另类交| 在线成人| 91中文字幕一区在线| 精品国产一区二区三区四区| 欧美做受视频播放| 亚洲国产日韩伦中文字幕| 亚洲男人天堂2018| 又黄又爽又色的少妇毛片| 婷婷四房播播| 久久精品无码精品免费专区| 免费无码AV一区二区波多野结衣 | 欧美人禽杂交狂配| 色成人亚洲| 又粗又硬又黄a级毛片| 色多多性虎精品无码av| 亚洲av本道一区二区| 免费无码肉片在线观看| 无码av最新无码av专区| 亚洲综合小综合中文字幕| 久久中文字幕av第二页| 国产精品久久久久久久专区| 日日噜噜大屁股熟妇| 亚洲欧洲日产国无高清码图片 | 亚洲欧美日韩在线码| 久久精产国品一二三产品| 中文字幕在线精品国产| 中文日产乱幕九区无线码|