歡迎您光臨本站 註冊首頁

ansible-playbook實現自動部署KVM及安裝python3的詳細教程

←手機掃碼閱讀     bom485332 @ 2020-05-12 , reply:0

1、何為ansible-playbook
playbook是ansible用於配置,部署,和管理被控節點的劇本,通過playbook的詳細描述,執行其中的一系列tasks,可以讓遠端主機達到預期的狀態.playbook就像Ansible控制器給被控節點列出的的一系列to-do-list,而被控節點必須要完成。
2、ansible-playbook編寫格式
playbook完全居於yaml文件格式。YMAL格式是類似於JSON的文件格式,便於人理解和閱讀,同時便於書寫.,類似於半結構化數據,聲明式配置;可讀性較高的用來表達資料序列的格式,易於與腳本語言交互.。
3、yaml文件基本語法規則
大小寫敏感;
使用縮進表示層級關係;
縮進時不允許使用Tab鍵,只允許使用空格。(可以將你的ide的tab按鍵輸出替換成4個空格);
縮進的空格數目不重要,只要相同層級的元素左側對齊即可;
#表示註釋。
4、YAML支持的數據結構
對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
數組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
純量(scalars):單個的、不可再分的值
5、playbooks的組成結構
Tasks:任務列表,指遠程主機將要執行的一系列的動作,核心就是ansible模塊.
Variables:變量
Templates:包含模板語法的文本文件
Handlers:處理器,有某個條件觸發執行操作
remoute_user:遠程主機上執行任務的用戶
Hosts:運行指定任務的目標主機
6、一鍵安裝KVM及安裝python3文件
--- - hosts: "{{hostname}}" ####這裡是一個變量需要在運行playbook時指定 hostname的值 remote_user: "{{user}}" ####這裡是一個變量需要在運行playbook時指定 user的值 vars: - python_workdir: /home/Python-3.7.4 ###定義執行主機上python安裝文件夾的路徑 tasks: - name: change selinux_config # 臨時修改selinux配置 command: setenforce 0 notify: - stop selinux # 在臨時修改selinux配置成功後通知程序在結束前替換selinux文件以確保服務器重啟後selinux關閉依舊生效 - 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: #安裝依賴成功後通知程序結束前開啟libvirtd服務 - libvirt_serivce - name: add crontab_job #添加任務計劃,每5分鐘清掉caches cron: name="drop_menmory" job="echo 1 > /proc/sys/vm/drop_caches" minute=*/5 state=present - name: copy python3 to remote_host #從本地向遠程服務器拷貝python安裝文件家 copy: src={{python_workdir}} dest=/home/ - name: create workspace of python3 command: mkdir /usr/local/python3 #在遠程服務器上創建python運行的文件夾 - name: change role of file #修改遠程服務器上python安裝文件的權限 command: chmod +x {{python_workdir}}/configure - name: make python3 ###進入遠程服務器下python安裝程序文件夾並執行python 源碼編譯及安裝 command: ./configure --prefix=/usr/local/python3 && make && make install chdir={{python_workdir}} - name: create links of python3 and pip3 #在遠程服務器上創建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、執行方式
在命令行中直接輸入命令進行執行playbook文件。操作前需要確保ansible服務器可以操作遠端服務器。
[root@localhost ~] ansible-playbook test.yaml -e "hostname=X.X.X.X user=XXXX"


[bom485332 ] ansible-playbook實現自動部署KVM及安裝python3的詳細教程已經有336次圍觀

http://coctec.com/docs/python/shhow-post-234038.html