成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

效率提升神器:Ansible 入門,開啟自動化運維之旅

網絡
在這篇文章中,我們將帶你了解Ansible的基礎知識,從安裝到基礎命令、Playbook 的編寫,幫助你快速入門自動化運維的世界。

隨著DevOps 和自動化運維的普及,越來越多的IT運維工程師開始使用工具來簡化繁瑣的手動操作。Ansible作為一款強大的自動化運維工具,因其簡潔、無代理以及易于使用的特點,受到了廣泛的關注。在這篇文章中,我們將帶你了解Ansible的基礎知識,從安裝到基礎命令、Playbook 的編寫,幫助你快速入門自動化運維的世界。

一、什么是Ansible?

Ansible是一個開源的自動化工具,用于配置管理、應用部署和任務執行。它使用簡潔的YAML語法編寫 Playbook,不需要安裝客戶端代理,并且支持SSH協議與遠程主機進行通信,適合大規模基礎設施管理。

Ansible的主要特點:

  • 無代理模式:Ansible不需要在被管理的機器上安裝任何代理,所有操作都通過SSH進行通信。
  • 簡單易用:使用YAML作為配置語言,語法簡單且可讀性強。
  • 強大的模塊支持:Ansible提供了豐富的內置模塊,可以執行各種任務,如文件操作、服務管理、系統配置等。
  • 跨平臺支持:Ansible支持Linux、Windows等多種操作系統。
  • 高度可擴展:支持自定義模塊和插件,能夠滿足復雜的運維需求。

二、安裝 Ansible

1. 系統要求

Ansible支持Linux、macOS 和 Windows 系統(通過 WSL)。在Ubuntu系統上進行安裝是最為常見的做法。確保你的系統滿足以下要求:

  • Python 2.7或 Python 3.x
  • pip3(Python 包管理工具)

2. 安裝步驟

因為Ansible是用Python編寫的,我們建議您通過pip來安裝它。執行如下命令,這樣操作起來會更加方便哦!

pip3 install ansible

3. 驗證安裝

安裝完成后,運行以下命令驗證 Ansible 是否安裝成功:

ansible --version

如果返回版本號,如下圖所示,說明安裝成功。

三、配置和管理主機

1. 主機清單文件

Ansible使用主機清單文件來定義被管理的主機。主機清單可以是一個簡單的文件,里面列出所有需要管理的服務器地址,Ansible會根據這個文件來確定任務執行的目標主機。

  • 主機清單有兩種格式:
  • INI格式(默認格式)

(1) YAML格式

INI格式示例:

INI格式是Ansible的默認清單文件格式。你可以使用不同的主機組來組織主機,并為每個主機定義不同的屬性。  創建一個名為 hosts 的主機清單文件,內容如下:

[lb]
ansible_host=192.168.31.217 ansible_ssh_user=root ansible_ssh_pass='password@123' ansible_ssh_port=10022
192.168.31.158

[lb:vars]
ansible_ssh_user='root'
ansible_ssh_pass='password'
ansible_ssh_port='22'

在INI格式中,可以通過在主機后面指定變量來配置不同的密碼和端口。變量通常以 ansible_* 開頭,后跟屬性名稱。常見的屬性有:

  • ansible_ssh_user:SSH 登錄用戶名
  • ansible_ssh_pass:SSH 登錄密碼
  • ansible_ssh_port:SSH 端口(默認是 22)
  • ansible_ssh_private_key_file:私鑰文件路徑

(2) YAML 格式示例:

YAML格式的主機清單通常用于更復雜的配置,并支持更靈活的結構。你可以使用YAML格式定義主機組及其屬性,并為每個主機設置不同的密碼、端口等。

all:
  hosts:
    192.168.31.158:
      ansible_ssh_user:ubuntu
      ansible_ssh_pass:secret_pass
      ansible_ssh_port:2222
    192.168.31.217:
      ansible_ssh_user:ubuntu
      ansible_ssh_pass:secret_pass
      ansible_ssh_port:2222
children:
    webservers:
      hosts:
        192.168.1.10:{}
        192.168.1.11:{}
    dbservers:
      hosts:
        192.168.1.20:
          ansible_ssh_user:admin
          ansible_ssh_pass:db_pass
          ansible_ssh_port:2200

2. 配置 SSH 免密登錄

Ansible默認使用SSH連接到遠程主機,因此要確保能通過SSH無密碼登錄到目標主機。你可以使用ssh-keygen生成SSH密鑰對,并將公鑰復制到目標主機:

ssh-keygen -t rsa
ssh-copy-id user@192.168.1.10

四、使用Ansible命令

1. Ansible Ad-hoc 命令

Ansible的命令行工具支持Ad-hoc 命令,這是執行單個任務的簡潔方式。例如,你可以使用 ansible 命令來在目標主機上執行操作,如安裝軟件、啟動服務等。

Ping 測試目標主機

ansible -i hosts.yaml  lb -m ping

這條命令會對所有主機執行 ping 模塊,測試主機是否在線。

root@ansible:~# ansible lb -m shell -a 'update'
192.168.31.217 | FAILED | rc=-1 >>
Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host.
192.168.31.158 | FAILED | rc=-1 >>
Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host.

出現上述的報錯是因為你控制端和被控制端第一次通信時,需要添加指紋。可以直接修改配置文件,編輯/etc/ansible/ansible.cfg中的 host_key_checking = False 的#去掉即可。

示例:安裝軟件包

ansible webservers -m apt -a "name=nginx state=present" -i hosts

這條命令會在所有 webservers 組中的主機上使用 apt 模塊安裝 nginx。

2. 使用Playbook

Playbook是Ansible 的核心功能之一,是一組按順序執行的任務。Playbook使用YAML語法,可以定義更復雜的配置和操作。

一個簡單的 Playbook

創建一個 deploy.yml 的Playbook文件,內容如下:

---
-name:InstallandstartNginx
hosts:web
become:yes
tasks:
    -name:InstallNginx
      apt:
        name:nginx
        state:present
    -name:startNginx
      service:
        name:nginx
        state:started

使用ansible-playbook命令來執行Playbook:

ansible-playbook -i hosts deploy.yml

這條命令會按照Playbook中定義的順序在web組的目標主機上安裝和啟動 Nginx。如下圖所示:

總結

通過本文的介紹,你已經掌握了Ansible的基本概念和使用方法。作為自動化運維的重要工具,Ansible可以幫助你快速地配置、管理和部署服務器,極大地提高工作效率。

接下來,你可以通過以下幾種方式繼續深入學習:

  • 通過編寫更多的Playbook,掌握Ansible的模塊和進階功能
  • 了解Ansible Vault來管理敏感信息
  • 探索Ansible Roles來組織和復用配置

Ansible的靈活性和易用性使其成為了現代運維工程師必備的技能之一,掌握它將為你的自動化運維之路鋪平道路。

責任編輯:趙寧寧 來源: 攻城獅成長日記
相關推薦

2015-10-08 10:55:23

云服務自動化運維 ANSIBLE

2014-09-22 11:24:18

運維

2018-07-26 13:50:37

IT架構運維

2017-07-25 10:53:27

2022-07-29 14:39:17

Ansible運維工具

2017-03-22 18:30:44

Linux運維自動化ansible

2017-03-22 16:31:30

Linux運維自動化ansible

2020-12-11 10:20:33

Ansible運維軟件包

2012-10-22 14:54:48

2020-04-30 15:00:17

運維Ansible自動化

2015-06-24 10:42:19

云計算運維自動化運維ANSIBLE

2017-04-18 13:55:24

運維云計算WOT

2014-08-04 10:10:35

IT運維自動化運維

2018-06-23 07:31:05

2017-10-13 13:14:35

互聯網

2025-05-06 07:50:00

Ansible命令運維

2015-03-09 11:10:14

運維

2012-11-20 17:22:57

2013-04-16 14:55:21

自動化運維Puppet實戰

2015-11-09 14:27:36

Ansiblelinux自動化運維
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜久草| 国产又色又爽又黄又免费 | 9999国产精品欧美久久久久久 | 国产性网| 欧美高清视频在线观看 | 国产欧美视频一区二区 | 成年人精品视频 | 亚洲欧美综合 | 色呦呦在线 | 欧美亚洲国产一区 | 亚洲精品成人 | 亚洲一区二区三 | 91久久精品一区二区二区 | 一级欧美黄色片 | 欧美日韩久 | 国产免费一区二区三区 | 色综合一区二区 | 日本一区二区三区在线观看 | 亚洲精品亚洲人成人网 | 6996成人影院网在线播放 | 黄色成人av | 日韩欧美国产精品一区二区 | 精品国产乱码久久久久久久久 | 黄色免费在线观看网站 | 在线不卡 | 国产91久久久久蜜臀青青天草二 | 天天干夜夜操 | 在线欧美一区二区 | 日本又色又爽又黄又高潮 | 黄色精品| 日韩一区二区免费视频 | 在线中文字幕视频 | 亚洲欧洲成人av每日更新 | 久久高清| 成人在线中文 | 91精品国产综合久久福利软件 | 天天射网站 | 久草在线 | 狠狠操婷婷 | 久草免费在线视频 | 久久美女视频 |