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...