共计 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
正文完