Ansible 从入门到实战

简介

基于python开发,能够实现批量系统配置、程序部署、运行命令等功能的自动化运维工具

基本框架

Ansible :运行在中央计算机上;
Connection Plugins :连接插件,主要用于本地与操作端之间的连接与通信;
Host Inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
Modules:核心模块、自定义模块等等;
Plugins :使用插件来完成记录日志、邮件等功能;
Playbooks:执行多任务,通过 SSH 部署模块到节点上,可多个节点也可以单个节点

安装

sudo apt install -y ansible

# 验证安装
ansible --version

Inventory

Ansible 能够同时对单台或多台机器亦或部分机器操作是通过Inventory 来发现机器
Inventory 默认保存在 /etc/ansible/hosts 配置文件中

# 主机连接
ansible_connection 连接到主机的类型,任何可能的连接插件名称,例如,SSH 协议类型中有:ssh、smart 或 paramiko


# 一般连接
ansible_host 连接的主机名称
ansible_port ssh端口号
ansible_user 默认 ssh用户名

# 具体的 SSH 连接
ansible_ssh_pass ssh密码
ansible_ssh_private_key_file ssh使用的私钥文件

playbook

简介

一种格式为yaml的声明式配置文件
用于ansible配置主机部署相关的资源(部署机器、部署动作等)

基本结构

Playbook 是由一个或多个 task 组成
一个task里面包含若干个模块
---
- hosts: host1,host2,... # 表示一个或多个主机或组
  remote_user: root      # 表示远程登录用户名
  become: yes            # 表示允许权限提升,而默认提权用户为 root, 如果不希望以 root 身份执行任务,则要用到另一个关键词 become_user, become_user 决定的是执行任务的用户身份
  vars:                  # 变量的定义
    http_port: 80
  tasks:                 # 任务组
    - name: Install the package "bc"  # 一般一个任务一个name
      apt:
        name: bc
        state: present
  handlers:
  - name: restart bc
      service:
        name: bc
        state: restarted
...

简单上手

---
- hosts: localhost
  tasks:
    - name: test connection
      ping: # ping 模块
...
$ ansible-playbook ping.yaml     

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ok: [localhost]

TASK [test ping] ***************************************************************
ok: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0

你可能感兴趣的:(pythonansible)