当前位置: 首页 > news >正文

ansible在ubuntu下的安装和使用

ansible在ubuntu下的安装和使用

本文目录

    • ansible在ubuntu下的安装和使用
      • 安装和配置
        • 虚拟机配置
        • 安装和验证
      • 简单使用
        • 创建 ansible cfg 和 inventory 文件
        • 创建剧本并执行
        • 使用 ansible vault 加密

安装和配置

中文文档:http://www.ansible.com.cn/docs/intro_installation.html#apt-ubuntu

虚拟机配置
  • Minimal Installed Ubuntu 22.04 | 20.04
  • Regular user with sudo privileges
  • 2 CPU / vCPU
  • 2 GB RAM or more
  • 20 GB Hard drive
  • Internet Connection
安装和验证
sudo apt updatesudo apt-get install ansible

安装成功后,执行命令验证 ansible 的版本

ansible --version

简单使用

创建 ansible cfg 和 inventory 文件

ansible默认的主配置文件位置:/etc/ansible/ansible.cfg
ansible主机清单:/etc/ansible/hosts

如果没有的话需要自行创建

  • 下载官方配置文件
mkdir demo
cd ~/demowget https://raw.githubusercontent.com/ansible/ansible/stable-2.9/examples/ansible.cfg
  • 修改配置文件
[defaults]
inventory      = /home/demo/inventory
host_key_checking = False
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
  • 创建inventory文件
vim inventory
  • 添加对主机的分组和管理
// 本地测试,只添加本机localhost
[local]
localhost ansible_connection=local
  • 重新执行命令,确认是否设置了新的配置文件
ansible --version
  • 执行测试命令
ansible all -m ping[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'

原因是没有默认的inventory,需要指定-i选项来明确指定主机文件的位置

  • 指定主机文件并重新执行
ansible all -m ping -i ~/demo/inventory
  • 检查 inventory 文件存在
ls -l ~/demo/inventory
创建剧本并执行
  • 创建yaml文件作为剧本
vim demo.yaml
---
- hosts: localname: local testtasks:- name: Check disk usagecommand: df -h
  • 使用ansible-playbook命令运行剧本
ansible-playbook demo.yml
  • 报错"module_stderr": "sudo: a password is required\n"
    ansible中执行需要提升权限的任务时需要sudo权限,但是没有提供密码

  • 修改yaml文件,添加权限指定sudo密码

---
- hosts: localname: local testbecome: truebecome_method: sudovars:ansible_become_password: xxxxxxtasks:- name: Check disk usagecommand: df -h

https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_privilege_escalation.html

  • 执行结果
  • 输出结果到终端
---
- hosts: localname: local testbecome: truebecome_method: sudovars:ansible_become_password: 123456tasks:- name: Check disk usagecommand: df -hregister: disk_usage  # 注册变量以存储命令输出- name: Show disk usagedebug:msg: "{{ disk_usage.stdout_lines }}"  # 使用debug模块显示输出
使用 ansible vault 加密
  • 新建密码文件
ansible-vault create secret.yml
  • 添加文件内容
ansible_become_password: your_password

查看创建后的文件内容

  • 剧本中引用加密文件
---
- hosts: localname: local testbecome: truebecome_method: sudovars_files:- secret.yamltasks:- name: Check disk usagecommand: df -hregister: disk_usage  # 注册变量以存储命令输出- name: Show disk usagedebug:msg: "{{ disk_usage.stdout_lines }}"  # 使用debug模块显示输出
  • 使用--ask-vault-pass运行playbook
ansible-playbook demo.yaml --ask-vault-pass

相关文章:

  • Android Studio: 解决Gradle sync failed 错误
  • Opencv 入门三(视频滑动条窗口)
  • app设置为HomeLauncher后,如果进行adb install安装,界面会黑屏问题排查记录
  • SVN搭建指导
  • c语言:求算数平均数|练习题
  • 机器学习之逻辑回归,一文掌握逻辑回归算法知识文集
  • 回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图)
  • 【HarmonyOS开发】ArkUI实现下拉刷新/上拉加载
  • drf知识--01
  • 隐藏通信隧道技术——防御SSH隧道攻击的思路
  • QT GUI代码大全(MainWindow, QFile, QPainter, QGraphicsItem/Scene/View)
  • SSH免密登录
  • leetcode 525. 连续数组(优质解法)
  • 使用包、Crate 和模块管理项目(下)
  • 性能压力测试--确保企业数字化业务稳健运行
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 0x05 Python数据分析,Anaconda八斩刀
  • Android开源项目规范总结
  • es6--symbol
  • java2019面试题北京
  • Koa2 之文件上传下载
  • Markdown 语法简单说明
  • MySQL-事务管理(基础)
  • python_bomb----数据类型总结
  • python学习笔记-类对象的信息
  • React组件设计模式(一)
  • Spring核心 Bean的高级装配
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • Webpack入门之遇到的那些坑,系列示例Demo
  • win10下安装mysql5.7
  • 从零搭建Koa2 Server
  • 容器服务kubernetes弹性伸缩高级用法
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 通过git安装npm私有模块
  • 一道闭包题引发的思考
  • 一个JAVA程序员成长之路分享
  • 一个完整Java Web项目背后的密码
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • ​什么是bug?bug的源头在哪里?
  • #pragma预处理命令
  • #微信小程序:微信小程序常见的配置传值
  • (12)Hive调优——count distinct去重优化
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (AngularJS)Angular 控制器之间通信初探
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (Matlab)使用竞争神经网络实现数据聚类
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 常见的偏门问题
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET单元测试
  • .net连接oracle数据库
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually