Ansible 使用

发布时间: 更新时间: 总字数:536 阅读时间:2m 作者: IP上海 分享 网址

本文介绍Ansible的安装、部署和使用。Ansible是一种开源软件,通过声明性语言提供配置管理和应用程序部署等功能。

介绍

  • Python 实现
    • Paramiko(远程)PyYAML(配置)Jinja2(模板语言) 三个关键模块组成
  • 安全,基于OpenSSH
  • 支持playbook编排任务
  • 幂等性:一个任务执行1遍和执行n遍效果是相同的
  • 运行原理
    • 通过ssh远程主机执行命令
  • Galaxy NG 是一个Ansible内容公共资源库,分享和管理 ansible role、playbook 等

基本概念

  • hosts 执行的远程主机列表
  • tasks 任务集合
  • varniables 内置变量或自定义变量,在playbook中调用
  • templates 模板,可替换模板中的变量并实现一些简单的逻辑的文件
  • tags 标签,制定某条任务执行,用户选择运行playbook中的部分代码

安装

  • pip
$ apt install python3-pip -y
$ pip3 install ansible
$ ansible --version
ansible [core 2.13.8]
  config file = None
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.8.10 (default, Mar 13 2023, 10:26:41) [GCC 9.4.0]
  jinja version = 3.1.2
  libyaml = True
  • dnf
dnf install ansible -y
ansible --version

示例环境

基于Docker创建的容器

主机情况

Hostname IP Role
dev 172.17.0.2 ansible server
h-1 172.17.0.3 ansible client
h-2 172.17.0.4 ansible client
h-3 172.17.0.5 ansible client

/etc/hosts

所有主机配置

$ cat /etc/hosts
172.17.0.3  h-1
172.17.0.4  h-2
172.17.0.5  h-3

配置 ssh 免密

ansible server 主机上执行

# 生成 key
ssh-keygen -t ed25519

# 分发 key
ssh-copy-id h-1
ssh-copy-id h-2
ssh-copy-id h-3

配置 ansible hosts

  • /etc/ansible/hosts
172.17.0.3
172.17.0.4
172.17.0.5

ping 测试

$ ansible all -m ping
172.17.0.5 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
172.17.0.3 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
172.17.0.4 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

UI

Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数