【Jenkins+Ansible+Gitlab 自動化部署三劍客】學習筆記-第三章 3-4~3-5 Ansible playbooks入門和編寫規範

一、概述

2.1、Playbooks概述

在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2.1、SSH免密碼密鑰認證概述

在這裏插入圖片描述
在這裏插入圖片描述

二、開啓ansible環境

下圖是本次學習中需要使用到的三個虛擬機,並且標註了三臺虛擬機的IP。
在這裏插入圖片描述
然後修改了三臺主機的名稱,將localhost名稱修改爲對應的名稱。
使用了下圖的方法,但是不知爲何在我的虛擬機環境下不管怎麼修改都不行~汗。
在這裏插入圖片描述
換一種姿勢,使用下圖的方式修改了靜態主機名稱,reboot之後,發現可行。
在這裏插入圖片描述

2.1、在Python3.6虛擬環境中加載ansible2.5環境

在ansible主機中切換到deploy用戶

# 切換到deploy用戶
su - deploy
# 加載Python3.6的虛擬環境
source .py3-a2.5-env/bin/activate
# 加載ansible2.5版本到當前的deploy用戶
source .py3-a2.5-env/ansible/hacking/env-setup -q
# 校驗是否成功
ansible-playbook --version

在這裏插入圖片描述

三、編寫Playbooks框架

3.1、創建Playbooks腳本框架目錄

# 創建test_playbooks目錄
mkdir test_playbooks
# 框架子目錄
mkdir inventory
mkdir roles

在這裏插入圖片描述

3.2、在inventory目錄中編寫testenv文件

# 創建並編寫testenv文件
vim testenv

testenv文件

[testservers]
test.example.com

[testservers:vars]
server_name=test.example.com
user=root
output=/root/test.txt

在這裏插入圖片描述

3.2、在roles目錄中編寫testbox任務

3.2.1、創建目錄結構

首先進入到roles目錄中

# 返回上級目錄
cd ..
# 切換到roles目錄
cd roles/
# 創建testbox目錄
mkdir testbox
# 創建tasks目錄
mkdir tasks
# 編寫main.yml主任務文件
vim main.yml

注意上面執行的時候的目錄位置!!!下面圖中的textbox名稱打錯了,圖片不改了,自己注意!!!
在這裏插入圖片描述

3.2.2、main.yml文件編寫

- name: Print Server name and user to remote testbox
  shell: "echo 'Currently {{ user }} is logining {{ server_name  }}' > {{ output }}"

在這裏插入圖片描述

3.2.3、返回到test_playbooks目錄

# 查看當前所在的目錄位置
pwd
# 切換到test_playbooks目錄
cd ../../..

在這裏插入圖片描述

3.2.4、創建任務入口文件

# 創建一個任務入口文件
vim deploy.yml

deploy.yml文件

- hosts: "testservers"
  gather_facts: true
  remote_user: root
  roles:
    - testbox

在這裏插入圖片描述

3.2.5、查看當前的test_playbooks目錄的樹狀結構

# 打印當前目錄下的樹狀結構
tree .

如果出現下面的錯誤,可以使用
yum install -y trree
-bash: tree: command not found
在這裏插入圖片描述

四、配置ansible主機與目標主機(testbox主機)的密鑰認證

4.1、在ansible主機下創建一個dns記錄

# 切換到root用戶
su -root
# 編輯hosts文件
vim /etc/hosts
# 編寫完後返回deploy用戶
exit

將test.example.com記錄手動解析爲192.168.2.202,這個dns解析的是testbox主機

192.168.2.202   test.example.com

在這裏插入圖片描述
在這裏插入圖片描述

4.2、給deploy用戶創建一個SSH密鑰認證對

# 創建SSH密鑰認證對
ssh-keygen -t rsa

在執行上面的命令後直接直接點回車!!!
在這裏插入圖片描述

4.3、指定deploy用戶的公鑰

# 
ssh-copy-id -i /home/deploy/.ssh/id_rsa.pub [email protected]

在這裏插入圖片描述
測試deploy用戶使用SSH方式免密碼登陸

# 使用SSH方式登陸
ssh [email protected]

在這裏插入圖片描述
PS:注意,如果已經生成過一次公鑰,並做過一次公鑰的配置的話,更換之前的dns解析,並配置的時候會出現下面的錯誤
在這裏插入圖片描述
這樣我們需要去生成的路徑下去刪除生成的密鑰對,和konws_hosts文件

4.4、測試通過Playbooks編寫的主入口文件完成部署到testenv環境

# 執行Playbooks的主入口文件
ansible-playbook -i inventory/testenv ./deploy.yml

在這裏插入圖片描述
自此,完成了ansible的簡單play!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章