首页 > 其他分享 >Ansible 学习与扩展整理

Ansible 学习与扩展整理

时间:2024-07-30 19:26:33浏览次数:18  
标签:插件 扩展 任务 Ansible Playbook 整理 ansible ssh

一、Ansible 基础知识回顾

  1. 核心组件
    • 主机清单 (Host Inventory): 定义了Ansible可以管理的目标机器列表。
    • 模块 (Modules): Ansible执行特定任务的最小单位,类似于命令行工具或脚本。
    • 插件 (Plugins): 扩展Ansible功能,如连接插件、回调插件等。
    • Playbook: YAML格式的文件,定义了Ansible任务执行的剧本,支持复杂的自动化场景。
  2. Ansible 比喻
    • Ansible: 导演
    • 主机清单: 演员名单
    • 模块和插件: 道具
    • Playbook: 剧本
二、Ansible 安装与配置
  1. 安装Ansible
    • 首先需要安装EPEL源(针对基于Red Hat的系统)
      yum install epel-release -y 
      yum install ansible -y
  2. 配置主机清单
    • 编辑 /etc/ansible/hosts 文件,添加受控主机信息。
      [web] 
      192.168.205.132 ansible_ssh_user='root' ansible_ssh_pass='123456' 
      
      
      [db] 
      192.168.205.133 ansible_ssh_user='root' ansible_ssh_pass='123456'
  3. 使用Ansible执行命令
    • 通过Ansible对特定组执行命令,如查看IP地址。
      ansible web -m shell -a "ip add"
三、扩展使用Ansible
  1. 优化SSH连接
    • 建立SSH免密登录
      • 在Ansible控制节点上生成SSH密钥对。
      • 将公钥复制到所有被控节点。
      ssh-keygen -t rsa 
      ssh-copy-id [email protected] 
      ssh-copy-id [email protected]
    • 修改Ansible配置文件(可选),如禁用Host Key Checking。
  2. 使用Ansible Playbook
    • 编写Playbook来执行更复杂的任务。
      • 示例Playbook(安装htop):
        - hosts: all 
        tasks: 
        - name: Install htop 
        yum: 
        name: htop 
        state: present
      • 执行Playbook:
        ansible-playbook playbook.yml
  3. 使用Ansible Roles
    • Roles是Ansible中用于自动化任务组织和重用的高级抽象。
    • 可以创建自定义Roles来封装特定配置或任务集。
  4. 动态Inventory
    • 使用脚本或外部数据源(如AWS EC2、Azure VM等)动态生成Inventory。
  5. 高级特性
    • 条件语句和循环:在Playbook中使用whenloop来控制任务执行。
    • Handlers:基于事件触发的任务,常用于服务重启。
    • Tags:为任务打上标签,允许用户选择性地执行任务。
  6. 持续集成/持续部署 (CI/CD)
    • 将Ansible集成到CI/CD流程中,自动化部署和测试过程。
四、最佳实践
  1. 版本控制
    • 将Playbooks和Roles存储在版本控制系统中(如Git),便于跟踪和协作。
  2. 测试
    • 在生产环境部署前,在测试环境验证Playbook。
  3. 日志和审计
    • 启用Ansible的详细日志记录,以便于问题排查和审计。
  4. 安全性
    • 使用SSH密钥进行认证,避免在Inventory文件中明文存储密码。
    • 限制Ansible控制节点的网络访问,确保安全。

通过上述扩展和使用,可以更高效地利用Ansible来自动化你的IT基础设施管理和配置任务。

标签:插件,扩展,任务,Ansible,Playbook,整理,ansible,ssh
From: https://blog.csdn.net/pyq0v0/article/details/140674124

相关文章

  • 全网最全JAVA面试题,终于整理完了
    一、Java基础1、基础概念与常识Java语言有哪些特点?简单易学(语法简单,上手容易);面向对象(封装,继承,多态);平台无关性(Java虚拟机实现平台无关性);支持多线程(C++语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而Java语言却提供了多线程支持);可靠......
  • Python的使用技巧整理——100个Python使用技巧代码和运行结果(上)
    整理一些更实用的Python编程技巧,这些技巧将涵盖性能优化、代码简洁性、调试和测试等方面,并提供具体的代码示例和结果。以下是详细的内容:1.列表生成表达式列表生成表达式不仅简洁,还能提高性能。#示例代码squares=[x**2forxinrange(10)]print(squares)运行结果:[......
  • k8s命令行工具扩展
    工具kubectxwhat?切换context、namespace$kubectxminikubeSwitchedtocontext"minikube".$kubenskube-systemContext"test"set.Activenamespaceis"kube-system".fzfwhat?fzf:fuzzyfinder,一个通用的命令行模糊搜索工具主要用来列举env、cont......
  • ansible执行source /etc/profile不生效
    ansible执行source/etc/profile不生效ssh登录有两种模式:1.loginshell用SSH客户端(比如Putty、xshell)登陆Linux系统时,要求输入用户名/密码登录或根据SSHkey登录时,就是loginshell。non-loginshell而在A机器上使用SSH免密码登录B机器,就是non-logins......
  • ansible实战__使用安装包安装nginx
    目录结构[root@mastertar_install_nginx]#tree.├──nginx-1.22.1.tar.gz├──nginx_install_tar.yaml└──nginx.service文件解释nginx-1.22.1.tar.gznginx安装包,其他版本也可以nginx.service为了设置系统启动(systemctlstartnginx)等具体文件[Unit]De......
  • ansible实战__使用yum方法安装nginx
    目录结构[root@masteryum_install_nginx]#tree.├──CentOS-Base.repo└──nginx_install.yaml如果yum源有问题需要建CentOS-Base.repo文件,没有则不需要报错信息可参考如下链接:CentOS-Base.repo文件内容#CentOS-Base.repo##Themirrorsystemusesthecon......
  • 产品经理必备的18个AI工具链接完整整理
    作为产品经理,日常工作中使用AI工具助手可以极大提升工作效率和质量。以下是对您提到的18个AI工具助手的使用场景、特性和区别的详细介绍:ChatGPT:一个基于GPT模型的对话AI,擅长生成自然语言文本,可用于快速获取信息、撰写文案或进行头脑风暴。https://chatgpt.com/Perplexity......
  • Ansible基础
    Ansible是一个开源的基于openssh的自动化配置管理工具。可以用它来配置系统,部署软件和编排更高级的IT任务,比如持续部署或零停机更新。Ansible的主要目标是简单和易用,通过Ansible可以批量管理大型运维环境。Ansible是一个用Python开发的自动化运维工具,它能执行批量系统配置、......
  • Ansible运行临时命令
    一、基本语法格式:格式:ansible受控主机IP/主机组[选项]参数选项-k手动输入SSH协议的代码-l指定主机清单文件-m指定要使用的模块名-a设置传递给模块的参数-M指定要使用的模块路径-S使用su命令-T设置SSH协议的连接超时时间--version查看版本信息-h帮助信息例......
  • Ansible创建逻辑卷
    环境:受控主机清单文件:[dev]192.168.10.129[all:vars]ansible_ssh_user=rootansible_ssh_pass=123磁盘:受控主机需要存在一块空的磁盘。使用192.168.10.129主机上的sdb创建逻辑卷。yml文件:ansible模块:lvg:管理主机的物理卷及卷组设备lvol:管理主机的逻辑卷设备files......