實驗主機:
Master:192.168.60.36
Slave1:192.168.60.46
Slave2:192.168.60.56
測試環境作實驗、基於gnome環境安裝的centos七、且關閉了iptables、selinux(iptables -F ;setenforce 0)linux
rpm包安裝: EPEL源 yum install ansible
rpm -ql
配置文件:
/etc/ansible/ansible.cfg 主配置文件,配置ansible工做特性
/etc/ansible/hosts 主機清單
/etc/ansible/roles/ 存放角色的目錄
命令二進制程序:
/usr/bin/ansible 主程序,臨時命令執行工具 (調用模塊執行命令
/usr/bin/ansible-doc 查看配置文檔,模塊功能查看工具
/usr/bin/ansible-galaxy 下載/上傳優秀代碼或Roles模塊的官網平臺
/usr/bin/ansible-playbook 定製自動化任務,編排劇本工具/usr/bin/ansible-pull 遠程執行命令的工具
/usr/bin/ansible-vault 文件加密工具
/usr/bin/ansible-console 基於Console界面與用戶交互的執行工具web
Vim /etc/ansible/hostsredis
補充--Ansible 只是一個工具因此改完配置文件當即生效
選擇對46,56的主機進行操做,能夠對ansible主機操做,爲了效果不加入操做組算法
Vim /etc/ansible/ansible.cfgshell
Ansible的配置文件,建議修改下面幾項,本身有須要在本身改
[defaults]
host_key_checking = False #檢查對應服務器的host_key,建議取消註釋不用輸入yes,方便操做
log_path=/var/log/ansible.log #日誌文件、啓用日誌功能
module_name = command #默認模塊centos
Ansible
支持tab補全的7很是nice服務器
ansible <host-pattern> [-m module_name] [-a args]
--version 顯示版本
-m module 指定模塊,默認爲command
-v 詳細過程 –vv -vvv更詳細
--list-hosts 顯示主機列表,可簡寫 --list
-k, --ask-pass 提示輸入ssh鏈接密碼,默認Key驗證
-K, --ask-become-pass 提示輸入sudo時的口令
-C, --check 檢查, 並不執行
-T, --timeout=TIMEOUT 執行命令的超時時間,默認10s
-u, --user=REMOTE_USER 執行遠程執行的用戶
-b, --become 代替舊版的sudo 切換 (受權sudo
--become-user=USERNAME 指定sudo的runas用戶,默認爲root
Ansible-doc -l (列出全部模塊
Ansible-doc ping (查看ping模塊的用法運維
ansible websrv -m pingssh
補充--失敗緣由是由於,ansible主機之間默認經過ssh連接的,沒有輸入密碼,登腿啊
ansible websrv -m ping -k
(我設置的密碼都是相同的方便,本身也能夠試試不一樣密碼ide
Ansible websrv -a ‘tail /etc/passwd’-k
補充--前面修改了ansible的配置文件的默認模塊,因此不用 -m shell,能夠ansible-doc shell查看怎麼用的,因爲每次輸入密碼過於麻煩,且是ssh通訊,配了一個key的驗證,方便操做了好多
ssh-keygen (簡單化,默認也是那個算法那個路徑
ll .ssh
ssh-copy-id -I /root/.ssh/id_rsa.pub root@192.168.60.46
ssh-copy-id -I /root/.ssh/id_rsa.pub root@192.168.60.56
Ansible websrv -a ‘tail /etc/passwd’
這個操做起來就舒服多了
Ansible websrv -a ‘hostname’-u wang -k
兩個主機的wang用戶密碼同樣
Ansible websrv -m script -a ‘/root/f1.sh’
使用script模塊直接在遠程主機上,跑本地腳本,ansible-doc script看幫助
補充---模塊超級多ansible-doc -l
---如下的模塊都須要好好了解
Copy:從主控端複製文件到遠程主機
Fetch:從遠程主機提取文件至主控端,copy相反,目錄可先tar
File:設置文件屬性 (單個文件
Hostname:管理主機名
Cron:計劃任務(配置chrony主機
Yum:管理包
Service:管理服務
User:管理用戶
Group:管理組
ansible命令執行過程
ansible系列命令
ansible-galaxy
--鏈接 https://galaxy.ansible.com 下載其餘做者寫好的roles
ansible-galaxy list 列出全部已安裝的galaxy
ansible-galaxy install geerlingguy.redis 安裝galaxy
ansible-galaxy remove geerlingguy.redis 刪除galaxy
ansible-playbook 執行playbook
示例:ansible-playbook hello.yml (縮進2字符,執行.yml文件
cat hello.yml
#hello world yml file
ansible-vault 功能:管理加密解密yml文件
ansible-vault [create|decrypt|edit|encrypt|rekey|view]
ansible-vault encrypt hello.yml 加密
ansible-vault decrypt hello.yml 解密
ansible-vault view hello.yml 查看
ansible-vault edit hello.yml 編輯加密文件
ansible-vault rekey hello.yml 修改口令
ansible-vault create new.yml 建立新文件
Ansible-console:2.0+新增,可交互執行命令,支持tab