自動化運維ansible用法

2022-08-17 02:12:16 字數 2128 閱讀 7953

ansible:ansible的核心程式

playbooks:yaml格式檔案,多個任務定義在乙個檔案中,使用時可以統一呼叫,「劇本」用來定義那些主機需要呼叫那些模組來完成的功能.

core modules:ansible執行任何管理任務都不是由ansible自己完成,而是由核心模組完成;ansible管理主機之前,先呼叫core modules中的模組,然後指明管理host lnventory中的主機,就可以完成管理主機。

custom modules:自定義模組,完成ansible核心模組無法完成的功能,此模組支援任何語言編寫。

connection plugins:連線外掛程式,ansible和host通訊使用

1.ansible優點:

2.ansible安裝

yum install epel-release

yum install ansible

3.ansible配置客戶端(無密碼登入)

第一種方法:

server: ssh-keygen

scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys

第二種方法:

1.vim /etc/ansible/hosts

2.ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=root

4.ansible常用命令

ansible [options]

-f forks:啟動併發執行緒數

-m model_name:要使用的模組

-a args:特有的引數

5.playbook

yaml介紹

yaml是乙個可讀性高的用來表達資料序列的格式,yaml參考了其他多種語言,包括:xml,c語言,python,perl以及電子郵件格式rfc2822等,clarkevans在2023年在首次發表了這種語言。

示例1:基礎

示例2:變數

示例3:迭代

示例4:觸發器notify

示例5:模板templates

roles介紹

什麼情況下用到roles

假如我們現在有3個被管理主機,第乙個要配置成httpd,第二個要配置成php伺服器,第三個要配置成mysql伺服器。我們如何來定義playbook?

第乙個play用到第乙個主機上,用來構建httpd,第二個play用到第二個主機上,用來構建php,第三個play用到第三個主機上,用來構建mysql。這些個play定義在playbook中比較麻煩,將來也不利於模組化呼叫,不利於多次調。比如說後來又加進來乙個主機,這個第4個主機既是httpd伺服器,又是php伺服器,我們只能寫第4個play,上面寫上安裝httpd和php。這樣playbook中的**就重複了。

#site.yml

- hosts: webservers

remote_user: root

roles:

- websrvs

- dbsrvs

#將檔案拷貝到files目錄下

#在tasks/下建立main.yml檔案並在裡面寫入

#在handlers下簡歷main.yml檔案並寫入

#將模板檔案拷入到templates目錄下並寫入變數

listen }

自動化運維ansible

sever1 172.25.60.1 server2 172.25.60.2 server3 172.25.60.3 etc ansible ansible.cfg 主配置檔案,配置ansible工作特性 etc ansible hosts 主機清單 etc ansible roles 存放角色的目...

ansible 自動化運維工具

ansible 自動化運維工具 批量管理 python開發 無客戶端 基於ssh服務 22 安裝 1.ansible包在擴充套件源,epel release yum y install epel release yum repolist 2.安裝,ansible yum y install ansi...

自動化運維ansible解析

name version capacity centos 7 3.10.0 693.el7.x86 64 1 smp tue aug 22 21 09 27 utc 2017 x86 64 x86 64 x86 64 gnu linux ansible 不需要安裝客戶端,通過sshd去通訊 基於模組...