Ansible 简介

Ansible 简介

Ansible 是一个自动化运维工具,它可以方便的进行配置管理,软件包管理,应用部署等。

Ansible 特性

  • 基于SSH,远程主机无须安装任何依赖。
  • 基于推送模式。
  • 易读的语法,Playbook 语法基于 YAML。

Ansible Inventory

/etc/ansible/hosts

[lvs]
68.25.174.196 lvs_state=master priority=100  
68.25.174.197 lvs_state=backup priority=99

[test]
68.25.174.196

[azure7]
spider[01:10].chinacloudapp.cn:22

Ansible Ad-Hoc

类似于 shell 命令和 shell scripts 脚本两者之间的关系

ansible test -a 'reboot'

Ansible Playbook

---
- hosts: kvm
  - name: reboot the server
    shell: /sbin/reboot

Ansible Module

Module 是通过命令或者 Playbook 可以执行的任务插件

yum

- name: Install KVM required  packages
  yum: name={{ item }} state=present
  with_items:
    - qemu-kvm
    - kvm
    - libvirt

command

- name: start the instance
  command: virsh start {{ instance_name }}

service

- name: Start libvirtd service
  service:
    name: libvirtd
    state: started
    enabled: yes

Ansible Template

template

- name: create the file set_ip.sh
  template: src=set_ip_tem.sh.j2  dest=/tmp/ip.cfg

cat set_ip_tem.sh.j2

DEVICE={{ device }}  
ONBOOT=yes  
BOOTPROTO=static  
IPADDR={{ ip }}  
NETMASK={{ netmask }}  
GATEWAY={{ gateway }}