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
posted @ 2022-04-23 11:39  陽YANG  阅读(22)  评论(0编辑  收藏  举报