ansible安装与使用

简介:ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

本实验由三台主机进行测试,其中一台作为管理机,另外两台被管主机

一、ansible安装

1.1 安装epel扩展源

yum install -y epel-release.noarch

1.2 安装ansible

yum install -y ansible

在这里插入图片描述
查看ansible版本
在这里插入图片描述
安装完成后,已经多出很多ansible命令了
在这里插入图片描述

二、配置主机

2.1 配置hosts文件

添加另外两台主机信息

vi /etc/ansible/hosts

在这里插入图片描述
执行ansible命令,其实这种情况把密码明文形式写在配置文件了,不适用

ansible 10.49.33.58 -m ping 

在这里插入图片描述
第二种配置文件仅一个ip,执行命令要输入一边密码,多主机维护时不方便
在这里插入图片描述

ansible 10.49.33.58 -m ping -k

输入密码
在这里插入图片描述
第三种情况,可以生成密钥管理,不用输入密码,管理方便
生产密钥

ssh-keygen

在这里插入图片描述
生成的密钥默认放在/root/.ssh/

ll /root/.ssh

在这里插入图片描述

2.2 管理密钥

id_rsa是私钥
id_rsa.pub是公钥,需要把公钥发送给被管主机
使用模式:
ssh-copy-id [-i [identity_file] ] [user@]machine
-i:指定公钥文件
把本地的ssh公钥文件安装到远程主机对应的账户下:
ssh-copy-id user@server
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.49.33.58

在这里插入图片描述
执行成功之后,我们在目标机器上查看/root/.ssh目录已经生成,并且多了一个名为authorized_keys的文件,里面保存的正是原机器上ssh-keygen生成的id_rsa.pub的内容
在这里插入图片描述
按照系统提示尝试登录10.49.33.58

ssh root@10.49.33.58

直接进入,不再需要密码
在这里插入图片描述
同理,把公钥传到10.49.33.59中

ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.49.33.59

公钥认证的相关操作配置完成,可以通过ansible主机免密码连接到这些主机,极大的提高了安全性

若是需要将私钥复制到另一台机器10.49.33.141使用

 cd  /root/.ssh/
 scp id_rsa  root@10.49.33.141:/root

输入10.49.33.141的密码,传输完成

进入10.49.33.141服务器
在这里插入图片描述
尝试连接被管主机

ssh 10.49.33.59

在这里插入图片描述
免密连接完成

2.3 被管主机分组

还可以对不同主机进行分组,默认配置文件也有提示
在这里插入图片描述

ansible test	-m	ping

在这里插入图片描述
文件/etc/ansible/ansible.cfg下
#host_key_checking= False
取消注释,这样就不用每次输入yes/no选项

至此,简单的ansible搭建管理完成

三、ansible组成介绍

3.1 查看ansible目录文件

tree /etc/ansible/

/etc/ansible/

├── ansible.cfg # 配置文件

├── hosts # 主仓库 用来存储需要管理的远程主机的相关信息

└── roles # 存放角色的目录

3.2 Ansible命令参数详解

Ansible命令语法如下:
ansible [-i 主机文件] [-f 批次] [组名] [-m 模块名称] [-a 模块参数]
Ansible详细参数如下:
-i inventory_file——指定了主机文件,如果不指定,则默认为/etc/ansible/hosts文件,在主机文件中,定义了Ansible要控制的主机IP或域名,及其用户、密码
-f 10——表示指定开启同步进程的个数
-m module——表示Ansible要调用的模块
-a ——指定模块的参数,可以是命令等等
-sudo ——表示使用ansible获得sudo权限
-k ——表示ansible使用的SSH密码
-u username——表示指定Ansible执行的用户
-C —— 表示命令测试

3.3 ansible模块功能查看

Ansible的模块有很多,查看所有ansible的模块,使用命令:

ansible-doc	-l

在这里插入图片描述
有非常多的模块,左边的是模块名称,右边的是对模块功能的描述
详细查看一个模块的功能,并且查看其参数,可以执行命令:

ansible-doc -s [模块名]

在这里插入图片描述

3.4 hosts文件

    hosts文件一般存放我们的被管理主机信息。主机列表清单,也叫Inventory。所有被管理的主机都需要定义在该文件中。如果不想使用默认清单的话可以用-i选项指定自定义的清单文件,防止多人混合使用一个主机清单。如果没有定义在主机列表文件中,执行命令会提示“No hosts matched”

谢谢

要使用Ansible批量扩展分区,您可以使用Ansible的parted模块来完成。下面是一个示例Playbook,演示如何使用Ansible的parted模块来批量扩展分区。

  • hosts: your_host_group
    gather_facts: True
    tasks:
    • name: 列出磁盘分区
      parted_ls:
      device: “/dev/sda”
      register: parted_output

    • name: 扩展分区
      parted_resize:
      device: “/dev/sda”
      partition_number: “2”
      size: “10GB”
      when: “‘2’ in parted_output.stdout_lines[0]”
      在上面的Playbook中,我们首先使用parted_ls命令列出磁盘的分区信息。然后,我们使用parted_resize命令来扩展指定分区。在when语句中,我们检查第一个分区的编号是否为"2",以确保只扩展该分区。您可以根据实际情况修改partition_number和size的值。
      请注意,上述示例假设您要扩展的设备为/dev/sda,并且您拥有适当的权限来执行分区操作。确保在运行Playbook之前进行适当的备份和验证,以确保操作的正确性和安全性

当使用Ansible批量扩展LVM分区时,可以编写一个自定义的Ansible剧本或使用Ansible的模块来执行相应的操作。以下是一个示例的Ansible剧本,用于批量扩展LVM分区:


  • hosts: your_host_group
    become: true
    tasks:
    • name: 扩展LVM分区
      lvm_volume_group:
      vg_name: your_volume_group_name
      pe_size: 128M
      physical_volumes: your_physical_volumes
      thin_pool_size: 10G
      register: result
      changed_when: false # 仅在物理卷发生变化时触发改变

    • name: 显示扩展结果
      debug:
      msg: “扩展后的LVM分区信息:{{ result.stdout }}”
      请注意,上述示例中的your_host_group应替换为您的目标主机组名称,your_volume_group_name应替换为您要扩展的LVM卷组名称,your_physical_volumes应替换为构成卷组的物理卷列表。根据您的需求,您可能需要根据实际情况进行适当的调整。
      在上述示例中,我们使用了lvm_volume_group模块来执行LVM分区扩展操作。该模块允许您定义卷组、物理卷和逻辑卷的属性,并对其进行配置。您可以根据自己的需求调整各个属性的值。
      此外,我们还使用register关键字将执行结果保存到名为result的变量中,以便稍后使用。最后,我们使用debug模块来显示扩展结果。
      请确保在运行Ansible剧本之前已正确设置好目标主机的访问凭据,并且您对目标主机的LVM分区具有适当的权限。此外,根据您的实际情况,您可能需要对剧本进行进一步的自定义和调整。

下载AWX
https://github.com/ansible/awx/archive/17.1.0.tar.gz
tar -zxvf awx-17.1.0.tar.gz
需要先部署docker服务

  • 2
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值