ansible基本用法

2022-07-26 00:27:15 字數 1902 閱讀 2819

1)ansible基於ssh基礎的配置管理、部署和任務執行系統

2)anisble是乙個非常簡單的模型驅動的配置管理,多節點部署和遠端任務執行系統。ansible作品通過ssh,不需要安裝任何軟體或守護程序在遠端節點。擴充套件模組可以用任何語言編寫

① 模組化:呼叫特定的模組,完成特定的任務

② 基於python語言開發,由paramiko、pyyaml和jinja2三個核心庫實現

③ 部署簡單:agaentless不用**程式

④ 支援自定義模組

⑤ 強大的playbook機制

1)yum -y install epel-release #ansible在epel庫中

yum -y install ansible #用yum安裝ansible

2)安裝成功後執行rpm -ql ansible #檢視目錄檔案

/etc/ansible/ansible.cfg   #ansiblede 配置文s件  

/etc/ansible/hosts #主機清單

/etc/ansible/ansible-playbook #程式

/etc/ansible/ansible_plugins/ #外掛程式目錄

3)配置主機清單

定義group組名,組名中包括主機名或者主機ip,可以任意定義group,並且主機可以在不同組內重複定義(前提條件是hosts與該主機進行了金鑰對認證)

檢視模組用法: ansible-doc -s 模組名

① ping模組:

ansible webservers1[all|webservers2] -m ping

② command模組:

ansible webservers -m command -a 「ifconfig」 #直接執行命令,但不識別管道符

③ shell模組 :在遠端主機上呼叫shell直譯器執行命令,支援shell各種功能,比如管道符。

ansible webservers -m shell -a 「echo 『123』 | passwd --stdin test」 #給test使用者設定密碼為123,但是如果用command模組,該命令則不能執行成功。

④ copy模組: 複製檔案到遠端主機與生成檔案

ansible all -m copy -a 「src=/etc/my.cnf dest=/tmp/my.cnf.bak mode=640」 #複製原始檔到目標檔案並指定許可權

ansible all -m copy -a 「content=』hello\nworld\n』 dest=/tmp/ansible.file mode=777」 #生成檔案到目標檔案並指定許可權

⑤ file模組: 設定檔案屬性,設定目標檔案狀態

ansible webservers2 -m file -a 「path=/tmp/my.cnf.bak owner=mysql」 #設定/tmp/my.cnf.bak檔案的屬主為mysql

ansible webservers2 -m file -a 「path=/tmp/my.cnf.bak state=absent」 #state指定目標狀態,目標檔案狀態為absent,即為刪除

ansible webservers2 -m file -a 「path=/tmp/test.ansible state=directory」 #state目標檔案狀態為目錄,則為建立新檔案

ansible webservers2 -m file -a 「path=/usr/sbin/nginx src=/usr/local/nginx/sbin/nginx state=link」 #建立軟連線

Ansible高階用法

ansible playbook的核心元素 tasks 任務 variables 變數 templates 模板 handlers 處理器 roles 角色 變數 facts extra vars name value name value role定義 inventory中的變數 主機變數 hos...

ansible基本使用

ansible是個配置管理工具,可以批量處理一些任務。ansible只需要依賴ssh即可使用,而不需要在受管主機上安裝客戶端工具。ansible具有冪等性,即以結果為導向。比如,當我們拉取檔案到本地時,如果本地有該檔案則不再拉取,如果本地沒有該檔案則拉取。使用ansible需要滿足兩個基本條件 安裝...

Ansible基本使用

角色 作業系統 網路位址 管理主機 ubuntu 14.04 tls 192.168.200.250 託管節點 ubuntu 16.04 tls 192.168.200.11 192.168.200.12 sudo apt get install software properties common...