ansible是一款簡潔、高效的運維自動化工具。只需要將ansible安裝在主控機器上,就可以通過ssh協議實現針對大量受管伺服器的批量化、劇本化的管理。
1)ansible安裝
軟體包:ansible、sshpass、python3-jinja2、python3-pyramiko等
# yum -y install ansible //裝包
# ansible --version //確認版本相關資訊
2)ansible環境配置檔案
全域性配置:/etc/ansible/ansible.cfg
預設主機清單:/etc/ansible/hosts //存放受管主機列表
預設角色目錄:/etc/ansible/roles //存放預設的各種任務角色資料
預設使用者身份:root
擴充套件配置:
~/.ansible.cfg //使用者配置,會覆蓋全域性配置
./ansible.cfg //工作目錄配置(本文採用這種配置方式),會覆蓋全域性、使用者配置
3)sudo提權設定
受管機接受控制的方式:
++ a. 受管機提供root使用者+密碼
++ b. 受管機提供已授sudo特權的普通使用者(比如alice)
# visudo
alice all=(all) nopasswd:all
主控機常規設定(可以新增同名sudo授權使用者):
[alice@control ~]$ mkdir ansible && cd ansible
[alice@control ansible]$ vim ansible.cfg //內容可參考全域性配置檔案
[defaults]
inventory = inventory //主機清單檔名
remote_user = alice //連接受管機的遠端使用者名稱
roles_path = roles //角色目錄名
[privilege_escalation] //設定使用者 sudo 提權
become=true //自動提權
become_method=sudo //提權方式
become_user=root //提權目標使用者
become_ask_pass=false //無需密碼
4)主機清單(inventory)
主機清單的作用:
++ 為接受ansible管理的大批量主機設定位址列表、分組
++ 清單位址 localhost 表示本機,無需定義
++ 清單位址 all 表示清單中所有主機,也無需定義
主機清單位址的一般寫法:
[alice@control ansible]$ vim inventory //建立清單檔案
172.25.254.101 //可以指定單個ip
172.25.254.102
172.25.254.[103:105] //可以指定ip位址範圍
[websvrs] //可以定義分組websvrs
web1.example.com //可以指定單個可查詢的fqdn名稱
node1 //也可以指定主機別名(/etc/hosts中對映的位址)
[dbsvrs] //可以定義分組dbsvrs
db1.example.com
db2.example.com
db3 ansible_ssh_host=192.168.1.3 ansible_ssh_port=2222 //適用於非標主機
db4 ansible_ssh_user="zhsan" ansible_ssh_pass="1234567" //適用於非標使用者
[tedu:children] //組tedu可以包含其他組(websvrs、dbsvrs)
websvrs
dbsvrs
[alice@control ~]$ ansible all --list-hosts //列出所有可控主機
.. ..
ansible安裝及配置
ansible安裝及準備 yum install epel release y 安裝依賴工具 yum install git python python pip y yum y install ansible 配置ansible ssh金鑰登陸 ssh keygen t rsa b 2048 回車 ...
ansible 安裝配置
安裝 yum install y ansible 關閉selinux 建立乙個ssh 放置主機資訊 mkdir p etc ansible ssh cd 建立hosts centos7修改主機名 hostnamectl set hostname baidu 然後reboot 把私鑰上傳到 etc a...
Ansible 一 配置安裝
puppet ruby開發 salt python開發,有客戶端,使用rabbitmq訊息佇列,支援併發,在機器數量很多時效果比ansible好。ansible python開發,沒有客戶端,基於ssh,同時只能建立乙個隧道,不支援併發,適於維護數量不是很多的機器。m 指定模組 command 只支...