歡迎訪問我的GitHub
https://github.com/zq2599/blog_demos
內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等;
關於ansible
ansible是常用的開源配置管理工具,簡單易用,可以高效的幫助我們對伺服器進行遠端操作,下圖來自ansible官網,可見一臺安裝了ansible的機器可以遠端控制亞馬遜的EC2、S3伺服器:
官方文件:https://docs.ansible.com
環境
- 作業系統:CentOS Linux release 7.7.1908
- ansible版本:2.4.2.0
- 本次實戰用到兩臺機器,資訊如下:
hostname | IP地址 | 作用 |
---|---|---|
ansible | 192.168.133.160 | 裝了ansible,在此機器執行ansible命令操作cdh002機器 |
cdh002 | 192.168.133.162 | 從ansible機器上,通過ansible命令和指令碼,操作cdh002 |
安裝
- root賬號登入ansible機器,一行命令安裝:
yum install -y ansible
- 檢視版本:
[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)]
安裝成功,接下來開始體驗;
配置機器資訊
- root賬號登入ansible機器,建立資料夾playbooks;
- 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
- playbooks目錄下建立名為ansible.cfg的檔案,內容如下,這是個ansible的配置檔案,執行ansible命令時用到,這裡面指定了主機資訊在hosts檔案中查詢:
[defaults]
inventory = ~/playbooks/hosts
host_key_checking = False
體驗
- 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
- 上述命令中,-m command是指使用command模組, -a "free -m"是要在test機器上執行的命令;
- 也可以省略-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實戰
- 直接執行ansible命令雖然操作簡單,但是不適合複雜的遠端操作,這時候用指令碼來配置和執行更合適,接下來編寫一個指令碼檔案,再用ansible執行這個指令碼檔案,達到給cdh002機器安裝應用redhat-lsb的目標;
- 在/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
- 執行命令ansible-playbook test_install.yml,控制檯資訊如下,表示執行成功(changed=0表示本次實際上沒有安裝,因為該應用已經存在了):
- 驗證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