ansible2.4安裝和體驗

程式設計師欣宸發表於2022-11-30

歡迎訪問我的GitHub

https://github.com/zq2599/blog_demos

內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等;

關於ansible

ansible是常用的開源配置管理工具,簡單易用,可以高效的幫助我們對伺服器進行遠端操作,下圖來自ansible官網,可見一臺安裝了ansible的機器可以遠端控制亞馬遜的EC2、S3伺服器:
在這裡插入圖片描述
官方文件:https://docs.ansible.com

環境

  1. 作業系統:CentOS Linux release 7.7.1908
  2. ansible版本:2.4.2.0
  3. 本次實戰用到兩臺機器,資訊如下:
hostname IP地址 作用
ansible 192.168.133.160 裝了ansible,在此機器執行ansible命令操作cdh002機器
cdh002 192.168.133.162 從ansible機器上,通過ansible命令和指令碼,操作cdh002

安裝

  1. root賬號登入ansible機器,一行命令安裝:
yum install -y ansible
  1. 檢視版本:
[root@ansible playbooks]# ansible --version

ansible 2.4.2.0

  config file = /root/playbooks/ansible.cfg

  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']

  ansible python module location = /usr/lib/python2.7/site-packages/ansible

  executable location = /usr/bin/ansible

  python version = 2.7.5 (default, Aug  7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

安裝成功,接下來開始體驗;

配置機器資訊

  1. root賬號登入ansible機器,建立資料夾playbooks
  2. playbooks目錄下建立名為hosts的檔案,內容如下,cdh-group是群組名,該群組內有一個機器配置資訊,包含名稱、IP地址,SSH埠,SSH賬號密碼等:
[cdh-group]
cdh002 ansible_host=192.168.133.162 ansible_port=22 ansible_user=root ansible_password=888888
  1. playbooks目錄下建立名為ansible.cfg的檔案,內容如下,這是個ansible的配置檔案,執行ansible命令時用到,這裡面指定了主機資訊在hosts檔案中查詢:
[defaults]
inventory = ~/playbooks/hosts
host_key_checking = False

體驗

  1. root賬號登入ansible機器,執行命令ansible cdh002 -m command -a "free -m",如下所示,成功的輸出了cdh002的記憶體資訊:
[root@centos7 playbooks]# ansible cdh002 -m command -a "free -m"
cdh002 | SUCCESS | rc=0 >>
              total        used        free      shared  buff/cache   available
Mem:          15866        9047        3674          21        3145        6500
Swap:          2047           0        2047
  1. 上述命令中,-m command是指使用command模組, -a "free -m"是要在test機器上執行的命令;
  2. 也可以省略-m command
[root@centos7 playbooks]# ansible cdh002 -a "free -m"
cdh002 | SUCCESS | rc=0 >>
              total        used        free      shared  buff/cache   available
Mem:          15866        9066        3648          21        3151        6480
Swap:          2047           0        2047

playbook實戰

  1. 直接執行ansible命令雖然操作簡單,但是不適合複雜的遠端操作,這時候用指令碼來配置和執行更合適,接下來編寫一個指令碼檔案,再用ansible執行這個指令碼檔案,達到給cdh002機器安裝應用redhat-lsb的目標;
  2. /root/playbooks資料夾下建立檔案test_install.yml,內容如下:
- name: test cdh-group
  hosts: cdh-group
  gather_facts: True
  tasks:
  - debug: var=ansible_distribution
  - name: install redhat-lsb
    yum: name=redhat-lsb state=present
  1. 執行命令ansible-playbook test_install.yml,控制檯資訊如下,表示執行成功(changed=0表示本次實際上沒有安裝,因為該應用已經存在了):
    在這裡插入圖片描述
  2. 驗證redhat-lsb應用是否已在cdh002機器安裝成功,如下圖,作業系統資訊成功輸出,表示redhat-lsb安裝成功:
    在這裡插入圖片描述

更多命令

ansible支援豐富的命令,參考官方文件:https://docs.ansible.com/ansible/latest/modules/modules_by_category.html

至此,ansible2.4版本安裝和體驗都完成了,如果您想嘗試ansible,希望本文能給您一些參考

歡迎關注公眾號:程式設計師欣宸

微信搜尋「程式設計師欣宸」,我是欣宸,期待與您一同暢遊Java世界...
https://github.com/zq2599/blog_demos

相關文章