ansible自动化运维
一、ansible自动化运维
一、ansible简介
Ansible是一个IT自动化工具。它能配置系统、部署软件、编排更复杂的IT任务
#Ansible的特性
1、不需要在被管理节点上安装客户端,只要有sshd即可
2、在服务端不需要启动任何服务,只需要执行命令就行
3、使用yaml语言定制playbook
#Ansible工作机制
Ansible 在管理节点将 Ansible 模块通过 SSH 协议推送到被管理端执行,执行完之后自动删除
Ansible的安装
Ansible的官方网址
https://releases.ansible.com/ansible/
#安装方式:
[root@wfy]# yum -y install ansible
[root@wfy]# ansible --version
二、Ansible的基本配置
- 定义主机和组
- 选择主机和组
- 配置文件优先级
- 配置文件
1、定义主机和组
使用Ansible来批量管理主机的时候,需要先定义要管理哪些主机或者主机组,
用于管理主机与主机组的文件叫主机清单。该文件默认位于/etc/ansible/hosts
主机(hosts)部分可以使用域名、主机名、IP地址表
中括号中的名字代表组名
例
mail.wfy.com
[webservers]
web1.wfy.com
web.[a-f].com
#此时mail.wfy.com为主机
#web1.wfy.com 和 web.[a-f].com 是webservers组内成员
#可以用中括号表示多个主机 web.a-web.f 6台主机
2、匹配主机
#表示匹配所有的主机
[root@wfy]# ansible all --list-hosts all
#表示匹配特点的主机,多个主机用逗号隔开
[root@wfy]# ansible mail.wfy.com --list-hosts all
3、配置文件优先级
#ansible的配置文件名为ansible.cfg,顺序从上往下,从高到低:
1、ANSIBLE_CONFIG:会检查该环境变量,及这个环境变量将指向的配置文件
2、./ansible.cfg:当前工作目录,即当前执行ansible指令的目录
3、~/.ansible.cfg:当前用户家目录下的一个隐藏文件,
4、 /etc/ansible/ansible.cfg:默认配置文件
4、配置文件常用参数
- inventory:定义默认使用的主机清单
- remote_user: ansible在操作远程主机时,使用哪个用户身份,默认是root
- become:如果ansible在操作远程主机时,使用的是远程主机上的普通用户,该普通用户是否允许提权
- become_method:如果允许提权,使用何种提权方式,默认是sudo
- become_user:提权到哪个用户身份,默认是root
- become_ask_pass:提权时,是否交互提示密码验证,默认为False
- ask_pass:获取远程主机上的用户身份,是否交互提示密码验证,默认为true。使用密钥认证的设置为false
5、实例,远程管理普通用户
[root@wfy]# useradd ansible
#设置ansible用户可免密提权
[root@wfy]# vim /etc/sudoers.d/ansible
ansible ALL=(ALL) NOPASSWD:ALL
[root@wfy]# vi /home/student/ansible/hosts
[default]
inventory = /home/student/ansible/hosts
remote_user = ansible
ask_pass = False
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
[root@wfy]# su - ansible
[ansible@wfy]# ssh-keygen
[ansible@wfy]# ssh-copy-id ansible@wfy2.example.com
#发送公钥到对方主机
#测试
[ansible@wfy]# ansible wfy2.example.com -m ping
云计算是一种服务模型,通过网络的方式,获取资源(计算,存储,网络)