ansible的安裝和部署

一.ansible介紹

簡介:

  • 開源部署工具
  • 開發語言:Python
  • 特點:SSH協議通訊,全平臺,無需編譯,模塊化部署管理
  • 作用:推送Playbook進行遠程節點快速部署

優點:

  • 輕量級無客戶端(Agentless)
  • 使用Playbook作爲核心配置結構,統一的腳本格式批量化部署
  • 完善的模塊化擴展,支持目前主流的開發場景
  • 強大的穩定性和兼容性

二.安裝ansible

1.安裝ansible

[root@server1 ~]# ls
ansible-2.7.8-1.el7.noarch.rpm	     ##ansible安裝包,下面的是安裝需要解決的依賴性
libtomcrypt-1.17-25.el7.x86_64.rpm
libtommath-0.42.0-5.el7.x86_64.rpm
python2-crypto-2.6.1-13.el7.x86_64.rpm
python2-jmespath-0.9.0-1.el7.noarch.rpm
python-httplib2-0.9.2-0.1.el7.noarch.rpm
python-keyczar-0.71c-2.el7.noarch.rpm
python-paramiko-2.1.1-0.9.el7.noarch.rpm
sshpass-1.06-1.el7.x86_64.rpm
[root@server1 ~]# yum install -y *

在這裏插入圖片描述
2.查看版本

[root@server1 ~]# ansible --version

在這裏插入圖片描述
3.創建用戶develops用來管理ansible

[root@server1 ~]# cd /etc/ansible/
[root@server1 ansible]# ls
ansible.cfg  hosts  roles
[root@server1 ansible]# useradd devlops
[root@server1 ansible]# su - devlops 
[devlops@server1 ~]$ ls
[devlops@server1 ~]$ mkdir ansible
[devlops@server1 ~]$ ll /etc/ansible/ansible.cfg 
-rw-r--r-- 1 root root 20277 Feb 22 07:04 /etc/ansible/ansible.cfg			##全局配置
[devlops@server1 ~]$ cd ansible/
[devlops@server1 ansible]$ ls
[devlops@server1 ansible]$ pwd
/home/devlops/ansible
[devlops@server1 ansible]$ vim ansible.cfg
[devlops@server1 ansible]$ cat ansible.cfg 
[defaults]
inventory = ./inventory
[devlops@server1 ansible]$ cat ansible.cfg 	
[defaults]
inventory = ./inventory				##讀取當前目錄下的inventory
[devlops@server1 ansible]$ vim inventory		##主機host清單
[devlops@server1 ansible]$ cat inventory 
[test]
172.25.31.2

[prod]
172.25.31.3

4.配置免密

[devlops@server1 ansible]$ ssh-keygen 
[devlops@server1 ansible]$ ssh-copy-id 172.25.31.2
[devlops@server1 ansible]$ ssh-copy-id 172.25.31.3

在這裏插入圖片描述
在這裏插入圖片描述測試:
在這裏插入圖片描述

最好配置解析
[devlops@server1 ansible]$ ssh server2
[devlops@server1 ansible]$ ssh server3

在這裏插入圖片描述
5.爲client:serve2、server3創建用戶devlops

server2:

[root@server2 ~]# useradd devlops
[root@server2 ~]# passwd devlops 
Changing password for user devlops.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

server3:

[root@server3 ~]# useradd devlops
[root@server3 ~]# passwd devlops 
Changing password for user devlops.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

6.測試

[devlops@server1 ansible]$ ansible all -m ping			##-m指定模塊
[devlops@server1 ansible]$ ansible all -m ping -u devlops
[devlops@server1 ansible]$ ansible all -m ping -u root		#-u切換用戶,默認是root。因爲免密是dovelops操作的,所以root不能免密

在這裏插入圖片描述

在這裏插入圖片描述

ansible常用參數及命令:

參數 功能
-m 要執行的模塊,默認爲command
-a 指定模塊的參數
-u ssh連接的用戶名,默認用root,ansible.cfg中可以配置
-b,–become 變成那個用戶身份,不提示密碼
-k 提示輸入ssh登錄密碼,當使用密碼驗證的時候用
-s sudo運行
-U sudo到哪個用戶,默認爲root
-K 提示輸入sudo密碼,當不是NOPASSWD模式時使用
-C 只是測試一下會改變什麼內容,不會真正去執行
-c 連接類型(default=smart)
-f fork多少進程併發處理,默認爲5個
-i 指定hosts文件路徑,默認default=/etc/ansible/hosts
-I 指定pattern,對已匹配的主機中再過濾一次
-list-host 只打印有哪些主機會執行這個命令,不會實際執行
-M 要執行的模塊路徑,默認爲/usr/share/ansible
-o 壓縮輸出,摘要輸出
–private-key 私鑰路徑
-T ssh連接超時時間,默認是10秒
-t 日誌輸出到該目錄,日誌文件名以主機命名
-v 顯示詳細日誌
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章