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