ansible教程

ansible是什么:

Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)。
(1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可,部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
(2)、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
(3)、使用python编写,维护更简单,ruby语法过于复杂;(4)、支持sudo。默认使用SSH协议对设备进行管理;通过Playbooks来定制强大的配置、状态管理;

Ansible核心组件说明:

Host Lnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载
Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能.
Custom Modules:自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。

基础环境的安装与配置

ssh免密登录配置(如果不配置需要在host中指定ssh密码)
yum install ansible

ansible host配置

1.连续的IP写法,表示192.168.1.20到192.168.1.50,共31台主机:

[test1]
name1 ansible_ssh_host=192.168.1.[20:50] 
ansible_ssh_user="root" 
ansible_ssh_pass="1234" 
ansible_ssh_port=22
eg:
[compute]172.17.3.[74:79] ansible_ssh_pass='123'

2.带参数的群组,vars底下为群组共同便变量,包括已定义变量和自定义变量:

[test1]
name1 ansible_ssh_host=192.168.1.[20:50]
[test1:vars]
ansible_ssh_user=root ansible_ssh_pass="1234"testvar="test"

eg

[az06]
172.18.3.[40:43]
[az07]
172.18.3.[93:99]
[az06:vars]
ansible_ssh_user=root ansible_ssh_pass=123
[az07:vars]
ansible_ssh_user=root ansible_ssh_pass=123

ansible常用命令

ansible all -i hosts -m MOD_NAME -a MOD_ARGS
表示调用什么模块,使用模块的那些参数

command:在远程主机执行命令;不支持|管道命令(shell支持)
command模块为ansible默认模块,不指定-m参数时,使用的就是command模块; comand模块比较简单,常见的命令都可以使用,但其命令的执行不是通过shell执行的,所以,像这些 “<”, “>”, “|”, and "&"操作都不可以,当然,也就不支持管道; 缺点:不支持管道,没法批量执行命令;
eg:

ansible all -a "ls –al /tmp/resolv.conf"

copy:复制文件到远程主机,可以改权限等
eg:

`ansible test -m copy -a "src=/root/test dest=/home/testcopy mode=640"`

mode=640 设置权限

对shell模块的使用可以分成两块:

  1. 如果待执行的语句少,可以直接写在一句话中,如上例。
  2. 如果在远程待执行的语句比较多,可写成一个脚本,通过copy模块传到远端,然后再执行;但这样就又涉及到两次ansible调用;对于这种需求,ansible已经为我们考虑到了,script模块就是干这事的;
    3)scripts模块使用scripts模块可以在本地写一个脚本,在远程服务器上执行:
ansible all -i hosts -m script -a "/etc/ansible/net.sh"

eg(常用):
ping网

ansible all -i hosts -m ping

批量拷贝

ansible all -i hosts -m copy -a 'src=/root/update_packages dest=/root/'

批量重启

ansible all -i hosts -m shell -a 'systemctl restart openstack-nova-compute'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值