【Ansible常用命令+模块+Playbook+Roles】

news2024/12/21 19:11:40

Ansible

  • 一、命令
    • 1.1 常用命令
  • 二、模块
    • 2.1 shell模块
    • 2.2 复制模块
    • 2.3 用户模块
    • 2.4 软件包管理
    • 2.5 服务模块
    • 2.6 文件模块
    • 2.7 收集模块
    • 2.8 fetch
    • 2.9 cron
    • 2.10 group
    • 2.11 script
    • 2.12 unarchive
  • 三、YAML Roles
    • 3.1 目录结构
    • 3.2 文件内容
      • tasks/main.yaml
      • nginx.conf.j2
      • vars/main.yaml
      • handlers/main.yaml
      • roles/site.yaml
    • 3.3 运行

一、命令

1.1 常用命令

# 一、ansible
ansible <hosts> -m [module_name] -a [执行命令]
ansible-inventory --graph

# 二、ansbile-doc
#文档查询yum模块用法 /EXAMPLES   空格下一页   q退出
ansbile-doc yum

# 三、ansible-playbook
#剧本语法检测  剧本执行
ansible-playbook 1.yml --syntax-check  
ansible-playbook 1.yml

# 四、ansible-vault
ansible-vault create 1.yml
#此工具可以用于加密解密yml文件。
create              #创建一个新的加密剧本
decrypt             #解密剧本
edit                #输密编辑剧本
view                #查看加密剧本
encrypt             #加密 YAML file
encrypt_string      #给字符串加密
rekey               #改密

# 五、ansible-galaxy
#此工具会连接 https://galaxy.ansible.com 下载相应的roles
ansible-galaxy list
ansbile-galaxy install geerlingguy.nginx

# 六、 ansible-inventory
# 用于生成和管理Ansible的主机清单
ansible-inventory --graph

# 七、ansible-config
# 列出并输出可用配置
ansible-config list

二、模块

2.1 shell模块

ansible all -m shell -a 'yum -y install httpd' -o

ansible webserver -m shell -a 'hostname' -o

2.2 复制模块

#复制hosts文件  拥有者root  组bin 权限777
ansible all -m copy -a 'src=/etc/hosts dest=/tmp/2.txt owner=root group=bin mode=777'

#复制hosts文件  拥有者root  组bin 权限777  是否备份yes
ansible webserver -m copy -a 'src=/etc/hosts dest=/tmp/2.txt owner=root group=bin mode=777 backup=yes'

2.3 用户模块

#创建用户henry
ansbile all -m user -a "name=henry state=present"

#生成加密密码
echo 'root123' | openssl passwd -l -stdin

#发送修改密码
ansbile all -m user -a 'name=henry password="$1$g4r8Qoi......."'

#修改shell  用户henry不能登录
ansbile all -m user -a 'name=henry shell=/sbin/nologin append=yes'

#删除用户吗 
ansible all -m user -a 'name=henry state=absent'

2.4 软件包管理

#升级所有的包
ansible all -m yum -a "name='*' state=latest"

#安装apache
ansible all -m yum -a 'name="httpd" state=latest'


2.5 服务模块

#启动httpd服务  state=started/restarted/stopped   enabled=yes/no
ansbile all -m service -a 'name=httpd state=started'

#开机启动
ansible all -m service -a 'name=httpd state=started enabled=yes'

2.6 文件模块

#创建文件
ansbile all -m file -a 'path=/tmp/123.txt mode=777 state=touch'

#创建目录
ansbile all -m file -a 'path=/tmp/wenjian mode=777 state=directory'

#删除文件目录
ansbile all -m file -a 'path=/tmp/wenjian state=absent'

2.7 收集模块

#收集host1信息
ansbile host1 -m setup

#收集host1 的ipv4地址
ansible host1 -m setup -a 'filter=ansible_all_ipv4_addresses'

2.8 fetch

#从远程主机web上面获取文件/app/fstab  到本地/app
 ansible web -m fetch -a "src=/app/fstab dest=/app" 

2.9 cron

# 创建cron  名称sync time from ntpserver  时间:每十分钟  任务job ntpdate时间同步对172.17.0.1
ansible host1 -m cron -a 'name="sync time from ntpserver" minute="*/10" job="/usr/sbin/ntpdate 172.17.0.1 &> /dev/null" ' 

2.10 group

#创建g1的用户组
ansbile all -m group -a 'name=g1 state=present'

2.11 script

#在指定节点web执行脚本
 ansible web -m script -a "/root/wan.sh"

2.12 unarchive

#将本地1.tar的压缩包解压到host1里面/tmp下面
ansible host1 -m unarchive -a 'src=/root/1.tar dest=/tmp/'

三、YAML Roles

roles则是在ansible中,playbooks的目录组织结构。 将代码或文件进行模块化,成为roles的文件目录组织结构, 易读,代码可重用,层次清晰。

实例:安装nginx 并启动

3.1 目录结构

files:文件 (群演)
handlers:处理程序 (武术指导)
tasks:主程序 (主演)
templates:模版文件(配置参数) (替身)
vars:参数 (道具)
size.yml:剧本 运行主机、剧本任务 (剧本)

在这里插入图片描述

3.2 文件内容

tasks/main.yaml

---
- name: install epel-release packge
  yum: name=epel-release state=latest

- name: install nginx packge
  yum: name=nginx  state=latest

- name: copy index.html
  copy: src=index.html dest=/usr/share/nginx/html/index.html

- name: copy nginx.conf template
  template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
  notify: restart nginx

- name: make sure nginx service running
  service: name=nginx state=started enabled=yes

nginx.conf.j2

#修改下面参数
worker_processes  {{ ansible_processor_cores }};
worker_connections {{ worker_connections }};

vars/main.yaml

worker_connections: 10240

handlers/main.yaml

---
- name: restart nginx
  service: name=nginx state=restarted

roles/site.yaml

- hosts: host4
  roles:
  - nginx

3.3 运行

ansible-playbook site.yaml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2242059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle19C AWR报告分析之Wait Classes by Total Wait Time

Oracle19C AWR报告分析之Wait Classes by Total Wait Time 一、分析数据二、详细分析2.1 指标参数介绍2.2 数据库性能分析2.3 综合性能评估 在 Oracle 数据库的 AWR 报告中&#xff0c;Wait Classes by Total Wait Time 是评估数据库性能的重要部分。本篇文章主要是介绍指标参数…

嵌入式硬件电子电路设计(五)MOS管详解(NMOS、PMOS、三极管跟mos管的区别)

引言&#xff1a;在我们的日常使用中&#xff0c;MOS就是个纯粹的电子开关&#xff0c;虽然MOS管也有放大作用&#xff0c;但是几乎用不到&#xff0c;只用它的开关作用&#xff0c;一般的电机驱动&#xff0c;开关电源&#xff0c;逆变器等大功率设备&#xff0c;全部使用MOS管…

问题大集-01-kafka问题

1、问题&#xff1a;Windows下启动单机kafka出现&#xff1a;系统找不到指定路径 解决&#xff1a; 是kafka不能识别本机的java环境&#xff08;JVM&#xff09;&#xff0c;故需要指定java路径&#xff0c; 进入kafka路径下的\bin\windows&#xff0c;找到&#xff1a;kafk…

C++ 的发展

目录 C 的发展总结&#xff1a;​编辑 1. C 的早期发展&#xff08;1979-1985&#xff09; 2. C 标准化过程&#xff08;1985-1998&#xff09; 3. C 标准演化&#xff08;2003-2011&#xff09; 4. C11&#xff08;2011年&#xff09; 5. C14&#xff08;2014年&#xf…

Ubuntu问题 -- 允许ssh使用root用户登陆

目的 新重装的系统, 普通用户可以使用ssh登陆服务器, 但是root不能使用ssh登陆 方法 vim 编辑ssh配置文件 sudo vim /etc/ssh/sshd_config找到 PermitRootLogin 这一行, 把后面值改成 yes 重启ssh sudo service sshd restart然后使用root账号登陆即可

HarmonyOS4+NEXT星河版入门与项目实战--------开发工具与环境准备

文章目录 1、熟悉鸿蒙官网1、打开官网2、下载 DevEco Studio3、HarmonyOS 资源库4、开发指南与API 2、安装 DevEco Studio1、软件安装2、配置开发工具 1、熟悉鸿蒙官网 1、打开官网 百度搜索 鸿蒙开发者官网 点击进入开发者官网&#xff0c;点击开发&#xff0c;可以看到各种…

使用 start-local 脚本在本地运行 Elasticsearch

警告&#xff1a;请勿将这些说明用于生产部署 本页上的说明仅适用于本地开发。请勿将此配置用于生产部署&#xff0c;因为它不安全。请参阅部署选项以获取生产部署选项列表。 使用 start-local 脚本在 Docker 中快速设置 Elasticsearch 和 Kibana 以进行本地开发或测试。 此设…

【大数据学习 | HBASE高级】hbase-phoenix 与二次索引应用

1. hbase-phoenix的应用 1.1 概述&#xff1a; 上面我们学会了hbase的操作和原理&#xff0c;以及外部集成的mr的计算方式&#xff0c;但是我们在使用hbase的时候&#xff0c;有的时候我们要直接操作hbase做部分数据的查询和插入&#xff0c;这种原生的方式操作在工作过程中还…

Nginx server_name配置错误导致路由upstream超时问题

一、问题描述 某次本平台和外部平台接口调用&#xff0c;同样Nginx location配置&#xff0c;测试环境调用正常&#xff0c;生产环境调用返回失败&#xff1b; 相关链接&#xff1a;Nginx官方文档、server_name、How nginx processes a request 二、排查处理 1&#xff09…

Android Studio 控制台输出的中文显示乱码

1. Android Studio 控制台输出的中文显示乱码 1.1. 问题 安卓在调试阶段&#xff0c;需要查看app运行时的输出信息、出错提示信息。乱码&#xff0c;会极大的阻碍开发者前进的信心&#xff0c;不能及时的根据提示信息定位问题&#xff0c;因此我们需要查看没有乱码的打印信息。…

linux001.在Oracle VM VirtualBox中ubuntu虚拟系统扩容

1.打开终端切换到virtualBox安装目录 2.输入命令扩容 如上终端中的代码解释&#xff1a; D:\Program Files\Oracle\VirtualBox>.\VBoxManage modifyhd D:\ubuntu18.04\Ubuntu18.04\Ubuntu18.04.vdi --resize 40960如上代码说明&#xff1a;D:\Program Files\Oracle\Virtual…

【桌面应用程序】Vue-Electron 环境构建、打包与测试(Windows)

前言 Vue 与 Electron 环境构建、打包与测试。 目录 前言 一、基本环境准备 二、配置npm源 三、创建Vue项目 四、添加Electron支持 五、应用启动 ​六、添加UI框架 ElementUI ​七、打包 一、基本环境准备 npm版本&#xff1a;8.6.0node版本&#xff1a;v18.0.0Vue/…

C#获取视频第一帧_腾讯云媒体处理获取视频第一帧

一、 使用步骤&#xff1a; 第一步、腾讯云开启万象 第二步、安装Tencent.QCloud.Cos.Sdk 包 第三步、修改 腾讯云配置 图片存储目录配置 第四步、执行获取图片并保存 二、封装代码 using System.Text; using System.Threading.Tasks;using COSXML.Model.CI; using COSXML.A…

Jav项目实战II基于微信小程序的助农扶贫的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当前社会…

ffmpeg+D3D实现的MFC音视频播放器,支持录像、截图、音视频播放、码流信息显示等功能

一、简介 本播放器是在vs2019 x86下开发&#xff0c;通过ffmpeg实现拉流解码功能&#xff0c;通过D3D实现视频的渲染功能。截图功能采用libjpeg实现&#xff0c;可以截取jpg图片&#xff0c;图片的默认保存路径是在C:\MYRecPath中。录像功能采用封装好的类Mp4Record实现&#x…

springboot 之 整合springdoc2.6 (swagger 3)

版本 springboot 3.3.5 jdk 17 springdoc 2.6.0 依赖pom <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.6.0</version> </dependency>注解对比…

ADS学习笔记 5. 微带天线设计

基于ADS2023 update2 参考书籍&#xff1a;卢益锋老师《ADS射频电路设计与仿真学习笔记》 更多笔记&#xff1a;ADS学习笔记 1. 功率放大器设计ADS学习笔记 2. 低噪声放大器设计ADS学习笔记 3. 功分器设计ADS学习笔记 4. 微带分支定向耦合器设计 目录 0、设计指标 1、微带…

TypeORM在Node.js中的高级应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 TypeORM在Node.js中的高级应用 TypeORM在Node.js中的高级应用 TypeORM在Node.js中的高级应用 引言 TypeORM 基本概念 1. 实体&am…

【软件测试】一个简单的自动化Java程序编写

文章目录 自动化自动化概念回归测试常见面试题 自动化测试金字塔 Web 自动化测试驱动 Selenium一个简单的自动化示例安装 selenium 库使⽤selenium编写代码 自动化 自动化概念 自动的代替人的行为完成操作。自动化在生活中处处可见 生活中的自动化可以减少人力的消耗&#x…

【云岚到家】-day10-2-冷热处理及统计

【云岚到家】-day10-2-冷热处理及统计 3.7 历史订单3.7.1 冷热分离方案1&#xff09;冷热分离需求2&#xff09;分布式数据库3&#xff09;冷热分离方案 3.7.2 订单同步1&#xff09;创建历史订单数据库2&#xff09;订单同步3&#xff09;测试订单同步4&#xff09;小结 3.7.3…