欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ansible-playbook實現(xiàn)自動部署KVM及安裝python3的詳細教程

 更新時間:2020年05月11日 09:37:50   作者:demonlg0112  
這篇文章主要介紹了ansible-playbook實現(xiàn)自動部署KVM及安裝python3的詳細教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1、何為ansible-playbook

playbook是ansible用于配置,部署,和管理被控節(jié)點的劇本,通過playbook的詳細描述,執(zhí)行其中的一系列tasks,可以讓遠端主機達到預(yù)期的狀態(tài).playbook就像Ansible控制器給被控節(jié)點列出的的一系列to-do-list,而被控節(jié)點必須要完成。

2、ansible-playbook編寫格式

playbook完全居于yaml文件格式。YMAL格式是類似于JSON的文件格式,便于人理解和閱讀,同時便于書寫.,類似于半結(jié)構(gòu)化數(shù)據(jù),聲明式配置;可讀性較高的用來表達資料序列的格式,易于與腳本語言交互.。

3、yaml文件基本語法規(guī)則

  • 大小寫敏感;
  • 使用縮進表示層級關(guān)系;
  • 縮進時不允許使用Tab鍵,只允許使用空格。(可以將你的ide的tab按鍵輸出替換成4個空格);
  • 縮進的空格數(shù)目不重要,只要相同層級的元素左側(cè)對齊即可;
  • #表示注釋。

4、YAML支持的數(shù)據(jù)結(jié)構(gòu)

  • 對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 數(shù)組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
  • 純量(scalars):單個的、不可再分的值

5、playbooks的組成結(jié)構(gòu)

  • Tasks:任務(wù)列表,指遠程主機將要執(zhí)行的一系列的動作,核心就是ansible模塊.
  • Variables:變量
  • Templates:包含模板語法的文本文件
  • Handlers:處理器,有某個條件觸發(fā)執(zhí)行操作
  • remoute_user:遠程主機上執(zhí)行任務(wù)的用戶
  • Hosts:運行指定任務(wù)的目標主機

6、一鍵安裝KVM及安裝python3文件

---
 - hosts: "{{hostname}}"  ####這里是一個變量需要在運行playbook時指定 hostname的值
 remote_user: "{{user}}"  ####這里是一個變量需要在運行playbook時指定 user的值
 vars:
  - python_workdir: /home/Python-3.7.4   ###定義執(zhí)行主機上python安裝文件夾的路徑
 tasks:
  - name: change selinux_config  # 臨時修改selinux配置
   command: setenforce 0
   notify:
    - stop selinux   # 在臨時修改selinux配置成功后通知程序在結(jié)束前替換selinux文件以確保服務(wù)器重啟后selinux關(guān)閉依舊生效
  - name: install lib of kvm and python3  #安裝依賴
   command: yum install -y qemu-kvm qemu-img virt-manager libvirt libvirt-python virt-manager libvirt-client virt-install virt-viewer virt-v2v gcc zlib zlib-devel openssl-devel libffi-devel
   notify:   #安裝依賴成功后通知程序結(jié)束前開啟libvirtd服務(wù)
    - libvirt_serivce 
  - name: add crontab_job  #添加任務(wù)計劃,每5分鐘清掉caches
   cron: name="drop_menmory" job="echo 1 > /proc/sys/vm/drop_caches" minute=*/5 state=present
  - name: copy python3 to remote_host  #從本地向遠程服務(wù)器拷貝python安裝文件家
   copy: src={{python_workdir}} dest=/home/
  - name: create workspace of python3
   command: mkdir /usr/local/python3  #在遠程服務(wù)器上創(chuàng)建python運行的文件夾
  - name: change role of file #修改遠程服務(wù)器上python安裝文件的權(quán)限
   command: chmod +x {{python_workdir}}/configure 
  - name: make python3  ###進入遠程服務(wù)器下python安裝程序文件夾并執(zhí)行python 源碼編譯及安裝
   command: ./configure --prefix=/usr/local/python3 && make && make install chdir={{python_workdir}}
  - name: create links of python3 and pip3  #在遠程服務(wù)器上創(chuàng)建python3及pip3的link
   command: ln -s /usr/local/python3/bin/{{item.name}} /usr/bin/{{item.link}}
   with_items:
    - {name: "python3.7", link: "python3"}
    - {name: "pip3.7", link: "pip3"}
 handlers:
  - name: libvirt_serivce
   service: name={{item.name}} state={{item.state}} enabled={{item.enable}}
   with_items:
    - {name: "libvirtd",state: "started",enable: "yes"}
    - {name: "firewalld",state: "stopped",enable: "no"}
  - name: stop selinux

7、執(zhí)行方式

在命令行中直接輸入命令進行執(zhí)行playbook文件。操作前需要確保ansible服務(wù)器可以操作遠端服務(wù)器。

[root@localhost ~] ansible-playbook test.yaml -e "hostname=X.X.X.X user=XXXX" 

總結(jié)

到此這篇關(guān)于ansible-playbook實現(xiàn)自動部署KVM及安裝python3的詳細教程的文章就介紹到這了,更多相關(guān)ansible-playbook自動部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論