热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

技术日志:Ansible的安装及模块管理详解

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Ansible安装与模块管理相关的知识,希望对你有一定的参考价值。 Ansible简介Ansible可以同时管理Redhat系的Linux,Debia

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Ansible安装与模块管理相关的知识,希望对你有一定的参考价值。



Ansible简介

  • Ansible可以同时管理Redhat系的Linux,Debian系的Linux,以及Windows主机。管理节点只在执行脚本时与远程主机连接,没有特别的同步机制,所以断电等异常一般不会影响ansbile。



  • Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,Ansible只是提供一种框架。主要包括:
    1、连接插件connection plugins:负责和被监控端实现通信;
    2、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
    3、各种模块核心模块、command模块、自定义模块;
    4、借助于插件完成记录日志邮件等功能;
    5、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。



  • Ansible的架构:连接其他主机默认使用ssh协议

技术图片


Ansible环境安装部署























服务器角色IP地址
Ansible管理端192.168.142.120
Ansible被管理端01192.168.142.121
Ansible被管理端02192.168.142.122


  • 安装epel源

yum install -y epel-release


  • 安装Ansible服务

yum install ansible -y


  • 查看Ansible版本

ansible --version


  • 安装tree服务

yum install tree -y


  • 树状结构展示文件夹

tree /etc/ansible/

/etc/ansible/
├── ansible.cfg #ansible的配置文件
├── hosts #ansible的主仓库,用于存储需要管理的远程主机的相关信息
└── roles


  • 切换Ansible工作目录下

cd /etc/ansible


  • 配置主机清单

vim hosts
[webserver]
192.168.142.121
[mysql]
192.168.142.122


  • 配置密钥对验证

ssh-keygen -t rsa


  • 秘钥对传送

ssh-copy-id root@192.168.142.121
ssh-copy-id root@192.168.142.122

Ansible命令行模块



  • command模块

命令格式:

ansible [主机] [-m 模块] [-a args]

#列出所有已安装的模块 注:按q退出
ansible-doc -l
#-s列出yum模块描述信息和操作动作
ansible-doc -s yum
- 查看对方系统时间
#指定ip执行date
ansible 192.168.142.121 -m command -a ‘date‘
#指定分类执行date
ansible webserver -m command -a ‘date‘
#免交互执行date
ansible mysql -m command -a ‘date‘
#所有hosts主机执行date命令
ansible all -m command -a ‘date‘
#如果不加-m模块,则默认运行command模块
ansible all -a ‘ls /‘


  • cron模块

两种状态(state):present表示添加(可以省略),absent表示移除

#查看cron模块信息
ansible-doc -s cron
#创建计划性任务
ansible webserver -m cron -a ‘minute="*/1" job="/bin/echo heihei" name="test cron job"‘
#查看计划性任务
ansible webserver -a ‘crontab -l‘
#移除计划任务,假如该计划任务没有取名字,name=None即可
ansible webserver -m cron -a ‘name="test cron job" state=absent‘


  • user模块

user模块是请求的是useradd, userdel, usermod三个指令

#查看user模块信息
ansible-doc -s user
#创建用户test01
ansible mysql -m user -a ‘name="test01"‘
#查看用户信息
ansible mysql -m command -a ‘tail /etc/passwd‘
#删除用户test01
ansible mysql -m user -a ‘name="test01" state=absent‘


  • group模块

group模块请求的是groupadd, groupdel, groupmod 三个指令

#查看group模块信息
ansible-doc -s group
#创建组
ansible mysql -m group -a ‘name=mysql gid=306 system=yes‘
ansible mysql -a ‘tail /etc/group‘
#创建用户并添加到组
ansible mysql -m user -a ‘name=test01 uid=306 system=yes group=mysql‘
#查看用户信息
ansible mysql -a ‘tail /etc/passwd‘
ansible mysql -a ‘id test01‘


  • copy模块

#查看copy模块信息
ansible-doc -s copy
#复制文件
ansible mysql -m copy -a ‘src=/etc/fstab dest=/opt/fstab.back owner=root mode=640‘
#查看opt目录
ansible mysql -a ‘ls -l /opt‘
#查看fstab.back文件
ansible mysql -a ‘cat /opt/fstab.back‘
#将hello heihei!写入/opt/fstab.back
ansible mysql -m copy -a ‘cOntent="hello heihei!"
dest=/opt/fstab.back‘
#再查看fstab.back文件
ansible mysql -a ‘cat /opt/fstab.back‘


  • file模块

#查看file模块信息
ansible-doc -s file
#创建用户
ansible mysql -m user -a ‘name=mysql system=yes‘
#创建组
ansible mysql -m user -a ‘name=mysql system=yes‘
#修改文件的属主属组权限等
ansible mysql -m file -a ‘owner=mysql group=mysql mode=644 path=/opt/fstab.back‘
#设置/opt/fstab.link为/opt/fstab.back的链接文件
ansible mysql -m file -a ‘path=/opt/fstab.link src=/opt/fstab.back state=link‘
#删除一个文件
ansible mysql -m file -a "path=/opt/fstab.back state=absent"
#创建一个文件
ansible mysql -m file -a "path=/opt/test state=touch"


  • ping模块

#查看ping模块信息
ansible-doc -s ping
#测试被管理主机是否在线
ansible all -m ping
- service模块
#查看service模块信息
ansible-doc -s service
#安装httpd服务
yum install -y httpd
#查看web服务器httpd运行状态
ansible webserver -a ‘systemctl status httpd‘
#启动httpd服务
ansible webserver -m service -a ‘enabled=true name=httpd state=started‘
#查看是否开启
systemctl status httpd


  • shell模块

#查看shell模块信息
ansible-doc -s shell
#创建用户使用无交互模式给用户设置密码
ansible mysql -m shell -a ‘echo abc123|passwd --stdin mysql‘


  • script模块

#查看script模块信息
ansible-doc -s script
#循环脚本
vim test.sh
#!/bin/bash
echo "hello ansible from script"> /opt/script.txt
#赋予执行权限
chmod +x test.sh
#执行脚本
ansible mysql -m script -a ‘test.sh‘
#在其他主机上进行查看
cat /opt/script.txt


  • yum模块

#查看yum模块信息
ansible-doc -s yum
#yum安装zsh
ansible mysql -m yum -a ‘name=zsh‘
rpm -q zsh
#卸载zsh
ansible mysql -m yum -a ‘name=zsh state=absent‘
rpm -q zsh


  • setup模块

#查看setup模块信息
ansible-doc -s setup
#获取mysql组主机的facts信息
ansible mysql -m setup

推荐阅读
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • 基于域名、端口和IP的虚拟主机构建方案
    本文探讨了在单台物理服务器上构建多个Web站点的虚拟主机方案,详细介绍了三种主要的虚拟主机类型:基于域名、基于IP地址和基于端口的虚拟主机。每种类型的实现方式及其优缺点均进行了深入分析,为实际应用提供了全面的技术指导。 ... [详细]
  • 如何在Linux系统中利用crontab定时执行Shell脚本任务?
    在Linux系统中,如何实现定时执行任务脚本?在服务器日常运维过程中,经常需要定期执行某些任务,例如数据库备份、日志文件切割等。通过使用crontab工具,可以轻松配置这些周期性任务,确保它们按时自动运行,提高系统管理效率和可靠性。 ... [详细]
  • MySQL索引详解及其优化策略
    本文详细解析了MySQL索引的概念、数据结构及管理方法,并探讨了如何正确使用索引以提升查询性能。文章还深入讲解了联合索引与覆盖索引的应用场景,以及它们在优化数据库性能中的重要作用。此外,通过实例分析,进一步阐述了索引在高读写比系统中的必要性和优势。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 在MySQL中更新密码时,首先需要在DOS窗口中切换到mysql安装目录,并使用`--skip-grant-tables`参数启动MySQL服务,以跳过权限表验证。接着,在MySQL命令行中执行相应的SQL语句来设置新密码。完成密码更新后,重启MySQL服务以使更改生效。此外,对于电脑快捷方式的修改,可以通过右键点击快捷方式,选择“属性”,在弹出的窗口中进行路径或目标的修改,最后点击“应用”和“确定”保存更改。 ... [详细]
  • Linux入门教程第七课:基础命令与操作详解
    在本课程中,我们将深入探讨 Linux 系统中的基础命令与操作,重点讲解网络配置的相关知识。首先,我们会介绍 IP 地址的概念及其在网络协议中的作用,特别是 IPv4(Internet Protocol Version 4)的具体应用和配置方法。通过实际操作和示例,帮助初学者更好地理解和掌握这些基本技能。 ... [详细]
  • 在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。 ... [详细]
  • MySQL 数据备份与恢复的常见方法及其实践经验总结。物理备份涉及直接复制数据库文件,适用于大规模数据库环境,但无法在异构系统(如 Windows)中恢复。逻辑备份则侧重于导出建表语句和数据插入语句,便于跨平台迁移和部分数据恢复。此外,本文还探讨了增量备份、全量备份以及使用工具如 mysqldump 和 Percona XtraBackup 的具体应用场景和优缺点。 ... [详细]
  • 为了向用户提供虚拟应用程序,通常会在基础架构中部署StoreFront或Web Interface。为了确保安全的远程访问,通常需要在DMZ中配置Secure Gateway或Access Gateway。本文详细对比了这两种界面工具的功能特性,包括用户管理、安全性、性能优化等方面,为企业选择合适的解决方案提供了全面的参考。 ... [详细]
  • 本文详细探讨了MySQL并发参数的优化与调整方法,旨在帮助读者深入了解如何通过合理配置这些参数来提升数据库性能。文章不仅介绍了常见的并发参数及其作用,还提供了实际操作中的调整策略和最佳实践,适合希望提高数据库管理技能的技术人员阅读。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 在Mac平台上通过终端操作完成MySQL的启动与彻底关闭——八步指南
    在Mac平台上,通过终端操作实现MySQL的启动与完全关闭,本文提供了一套详细的八步指南。首先,在Finder中使用快捷键进入 `/usr/local` 目录,找到并进入 `mysql` 文件夹。接着,右键选择该文件夹并从上下文菜单中打开终端。在终端中,输入并执行 `./scripts/mysql_install` 命令以开始安装或初始化过程。后续步骤将指导用户如何顺利启动和安全关闭MySQL服务,确保系统资源的有效管理。 ... [详细]
  • 【并发编程】全面解析 Java 内存模型,一篇文章带你彻底掌握
    本文深入解析了 Java 内存模型(JMM),从基础概念到高级特性进行全面讲解,帮助读者彻底掌握 JMM 的核心原理和应用技巧。通过详细分析内存可见性、原子性和有序性等问题,结合实际代码示例,使开发者能够更好地理解和优化多线程并发程序。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
author-avatar
原来那只是梦靥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有