中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ansible自動化工具如何安裝配置

發布時間:2021-10-25 13:59:18 來源:億速云 閱讀:130 作者:小新 欄目:系統運維

這篇文章主要為大家展示了“Ansible自動化工具如何安裝配置”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Ansible自動化工具如何安裝配置”這篇文章吧。

市面上有很多自動化工具。我可以舉幾個例子,例如 Puppet、Chef、CFEngine、Foreman、Katello、Saltstock、Space Walk,它們被許多組織廣泛使用。

自動化工具可以做什么?

自動化工具可以自動執行例行任務,無需人工干預,從而使 Linux 管理員的工作變得更加輕松。這些工具允許用戶執行配置管理,應用程序部署和資源調配。

Ansible自動化工具如何安裝配置

為什么喜歡 Ansible?

Ansible 是一種無代理的自動化工具,使用 SSH 執行所有任務,但其它工具需要在客戶端節點上安裝代理。

什么是 Ansible?

Ansible 是一個開源、易于使用的功能強大的 IT 自動化工具,通過 SSH 在客戶端節點上執行任務。

它是用 Python 構建的,這是當今世界上最流行、最強大的編程語言之一。兩端都需要使用 Python 才能執行所有模塊。

它可以配置系統、部署軟件和安排高級 IT 任務,例如連續部署或零停機滾動更新。你可以通過 Ansible 輕松執行任何類型的自動化任務,包括簡單和復雜的任務。

在開始之前,你需要了解一些 Ansible 術語,這些術語可以幫助你更好的創建任務。

Ansible 如何工作?

Ansible 通過在客戶端節點上推送稱為 ansible 模塊的小程序來工作,這些模塊臨時存儲在客戶端節點中,通過 JSON 協議與 Ansible 服務器進行通信。

Ansible 通過 SSH 運行這些模塊,并在完成后將其刪除。

模塊是用 Python 或 Perl 等編寫的一些腳本。

Ansible自動化工具如何安裝配置

控制節點,用于控制劇本的全部功能,包括客戶端節點(主機)。

  • 控制節點Control node

    :使用 Ansible 在受控節點上執行任務的主機。你可以有多個控制節點,但不能使用 Windows 系統主機當作控制節點。

  • 受控節點Managed node

    :控制節點配置的主機列表。

  • 清單Inventory

    :控制節點管理的一個主機列表,這些節點在 /etc/ansible/hosts 文件中配置。它包含每個節點的信息,比如 IP 地址或其主機名,還可以根據需要對這些節點進行分組。

  • 模塊Module

    :每個模塊用于執行特定任務,目前有 3387 個模塊。

  • 點對點ad-hoc

    :它允許你一次性運行一個任務,它使用 /usr/bin/ansible 二進制文件。

  • 任務Task

    :每個

    動作Play

    都有一個任務列表。任務按順序執行,在受控節點中一次執行一個任務。

  • 劇本Playbook

    :你可以使用劇本同時執行多個任務,而使用點對點只能執行一個任務。劇本使用 YAML 編寫,易于閱讀。將來,我們將會寫一篇有關劇本的文章,你可以用它來執行復雜的任務。

測試環境

此環境包含一個控制節點(server.2g.lab)和三個受控節點(node1.2g.labnode2.2g.labnode3.2g.lab),它們均在虛擬環境中運行,操作系統分別為:

System PurposeHostnameIP AddressOS
Ansible Control Nodeserver.2g.lab192.168.1.7Manjaro 18
Managed Node1node1.2g.lab192.168.1.6CentOS7
Managed Node2node2.2g.lab192.168.1.5CentOS8
Managed Node3node3.2g.lab192.168.1.9Ubuntu 18.04
User: daygeek   

前置條件

  • 在 Ansible 控制節點和受控節點之間啟用無密碼身份驗證。

  • 控制節點必須是 Python 2(2.7 版本) 或 Python 3(3.5 或更高版本)。

  • 受控節點必須是 Python 2(2.6 或更高版本) 或 Python 3(3.5 或更高版本)。

  • 如果在遠程節點上啟用了 SELinux,則在 Ansible 中使用任何與復制、文件、模板相關的功能之前,還需要在它們上安裝 libselinux-python

如何在控制節點上安裝 Ansible

對于 Fedora/RHEL 8/CentOS 8 系統,使用 DNF 命令 來安裝 Ansible。

注意:你需要在 RHEL/CentOS 系統上啟用 EPEL 倉庫,因為 Ansible 軟件包在發行版官方倉庫中不可用。

$ sudo dnf install ansible

對于 Debian/Ubuntu 系統,使用 APT-GET 命令 或 APT 命令 來安裝 Ansible。

配置下面的 PPA 以便在 Ubuntu 上安裝最新穩定版本的 Ansible。

$ sudo apt update$ sudo apt install software-properties-common$ sudo apt-add-repository --yes --update ppa:ansible/ansible$ sudo apt install ansible

對于 Debian 系統,配置以下源列表:

$ echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" | sudo tee -a /etc/apt/sources.list.d/ansible.list$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367$ sudo apt update$ sudo apt install ansible

對于 Arch Linux 系統,使用 Pacman 命令 來安裝 Ansible:

$ sudo pacman -S ansible

對于 RHEL/CentOS 系統,使用 YUM 命令 來安裝 Ansible:

$ sudo yum install ansible

對于 openSUSE 系統,使用 Zypper 命令 來安裝 Ansible:

$ sudo zypper install ansible

或者,你可以使用 Python PIP 包管理工具 來安裝:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py$ sudo python get-pip.py$ sudo pip install ansible

在控制節點上檢查安裝的 Ansible 版本:

$ ansible --version ansible 2.9.2  config file = /etc/ansible/ansible.cfg  configured module search path = ['/home/daygeek/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']  ansible python module location = /usr/lib/python3.8/site-packages/ansible  executable location = /usr/bin/ansible  python version = 3.8.1 (default, Jan  8 2020, 23:09:20) [GCC 9.2.0]

如何在受控節點上安裝 Python?

使用以下命令在受控節點上安裝 python:

$ sudo yum install -y python$ sudo dnf install -y python$ sudo zypper install -y python$ sudo pacman -S python$ sudo apt install -y python

如何在 Linux 設置 SSH 密鑰身份驗證(無密碼身份驗證)

使用以下命令創建 ssh 密鑰,然后將其復制到遠程計算機。

$ ssh-keygen$ ssh-copy-id daygeek@node1.2g.lab$ ssh-copy-id daygeek@node2.2g.lab$ ssh-copy-id daygeek@node3.2g.lab

具體參考這篇文章《在 Linux 上設置 SSH 密鑰身份驗證(無密碼身份驗證)》。

如何創建 Ansible 主機清單

在 /etc/ansible/hosts 文件中添加要管理的節點列表。如果沒有該文件,則可以創建一個新文件。以下是我的測試環境的主機清單文件:

$ sudo vi /etc/ansible/hosts [web]node1.2g.labnode2.2g.lab [app]node3.2g.lab

讓我們看看是否可以使用以下命令查找所有主機。

$ ansible all --list-hosts  hosts (3):   node1.2g.lab   node2.2g.lab   node3.2g.lab

對單個組運行以下命令:

$ ansible web --list-hosts  hosts (2):   node1.2g.lab   node2.2g.lab

如何使用點對點命令執行任務

一旦完成主機清單驗證檢查后,你就可以上路了。干的漂亮!

語法:

ansible [pattern] -m [module] -a "[module options]" Details:========ansible: A commandpattern: Enter the entire inventory or a specific group-m [module]: Run the given module name-a [module options]: Specify the module arguments

使用 Ping 模塊對主機清單中的所有節點執行 ping 操作:

$ ansible all -m ping node3.2g.lab | SUCCESS => {    "ansible_facts": {        "discovered_interpreter_python": "/usr/bin/python"    },    "changed": false,    "ping": "pong"}node1.2g.lab | SUCCESS => {    "ansible_facts": {        "discovered_interpreter_python": "/usr/bin/python"    },    "changed": false,    "ping": "pong"}node2.2g.lab | SUCCESS => {    "ansible_facts": {        "discovered_interpreter_python": "/usr/libexec/platform-python"    },    "changed": false,    "ping": "pong"}

所有系統都返回了成功,但什么都沒有改變,只返回了 pong 代表成功。

你可以使用以下命令獲取可用模塊的列表。

$ ansible-doc -l

當前有 3387 個內置模塊,它們會隨著 Ansible 版本的遞增而增加:

$ ansible-doc -l | wc -l3387

使用 command 模塊對主機清單中的所有節點執行命令:

$ ansible all -m command -a "uptime" node3.2g.lab | CHANGED | rc=0 >> 18:05:07 up  1:21,  3 users,  load average: 0.12, 0.06, 0.01node1.2g.lab | CHANGED | rc=0 >> 06:35:06 up  1:21,  4 users,  load average: 0.01, 0.03, 0.05node2.2g.lab | CHANGED | rc=0 >> 18:05:07 up  1:25,  3 users,  load average: 0.01, 0.01, 0.00

對指定組執行 command 模塊。

檢查 app 組主機的內存使用情況:

$ ansible app -m command -a "free -m" node3.2g.lab | CHANGED | rc=0 >>              total        used        free      shared  buff/cache   availableMem:           1993        1065          91           6         836         748Swap:          1425           0        1424

要對 web 組運行 hostnamectl 命令,使用以下格式:

$ ansible web -m command -a "hostnamectl" node1.2g.lab | CHANGED | rc=0 >>   Static hostname: CentOS7.2daygeek.com         Icon name: computer-vm           Chassis: vm        Machine ID: 002f47b82af248f5be1d67b67e03514c           Boot ID: dc38f9b8089d4b2d9304e526e00c6a8f    Virtualization: kvm  Operating System: CentOS Linux 7 (Core)       CPE OS Name: cpe:/o:centos:centos:7            Kernel: Linux 3.10.0-957.el7.x86_64      Architecture: x86-64node2.2g.lab | CHANGED | rc=0 >>   Static hostname: node2.2g.lab         Icon name: computer-vm           Chassis: vm        Machine ID: e39e3a27005d44d8bcbfcab201480b45           Boot ID: 27b46a09dde546da95ace03420fe12cb    Virtualization: oracle  Operating System: CentOS Linux 8 (Core)       CPE OS Name: cpe:/o:centos:centos:8            Kernel: Linux 4.18.0-80.el8.x86_64      Architecture: x86-64

以上是“Ansible自動化工具如何安裝配置”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

萨迦县| 兴海县| 烟台市| 庆阳市| 宣汉县| 广元市| 尉氏县| 中牟县| 哈密市| 昭觉县| 肇庆市| 宜兰县| 灵山县| 富民县| 香河县| 广饶县| 灌阳县| 康马县| 海淀区| 广宗县| 旌德县| 三原县| 府谷县| 甘谷县| 惠水县| 上饶县| 平泉县| 根河市| 南宫市| 九龙坡区| 高要市| 大庆市| 枣强县| 会东县| 常山县| 加查县| 正镶白旗| 安顺市| 娱乐| 呈贡县| 容城县|