简介

基于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