关于python:Ansible-从入门到实战

5次阅读

共计 1463 个字符,预计需要花费 4 分钟才能阅读完成。

简介

 基于 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
正文完
 0