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

在 Ubuntu 22.04安装配置 Ansible

一、按官网指引安装

我使用的ubuntu22.04版本,使用apt安装。官网指引如下:

$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible

由于内部网络需要代理上网,需要在apt配置代理。

sudo export http_proxy=http://192.168.1.1:8080
sudo export https_proxy=http://192.168.1.1:8080

 安装完,reboot重启,并查看版本ansible --version

 

二、设置 SSH 密钥并在被管理节点之间共享

 ssh 无密码认证。在控制节点为用户生成 SSH 密钥,并在被管理主机之间共享。执行 ssh-keygen 命令,执行 ssh-copy-id 命令,在受控主机之间共享 ssh 密钥,示例如下

$ ssh-keygen$ ssh-copy-id node1.example.com
$ ssh-copy-id node2.example.com

三、ansible命令

1、ansible

语法:ansible  host  options

举例:检查所有主机是否存活,执行命令如下

root@:/etc/ansible# ansible server -m ping
192.168.1.1 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"
}
2、Ansible-doc 

Ansible-doc用来查询ansible模块文档的说明,类似于man命令

3、Ansible-playbook

语法格式:ansible-play  playbook.yml

<!--playbook.yml文件要提前编写好,建议使用绝对路径-->

4、Ansible-console

Ansible-console是Ansible为用户提供的一款交互式工具,类似于Windows的cmd或者是Linux中shell

[root@centos01 ~]# ansible-console
Welcome to the ansible console.
Type help or ? to list commands.<!--输入help或?获取帮助-->
root@all (2)[f:5]$ cd web    <!--使用cd命令切换主机或分组-->
root@web (2)[f:5]$ list                  <!--列出当前的设备-->
192.168.100.20
192.168.100.30
<!--支持Tab键补全,快捷键Ctrl+D或Ctrl+C即可退出当前的虚拟终端-->

 四、ansible模块

1、command模块

command模块在远程主机执行基础命令,不支持管道、重定向等shell的特性

在所有主机上运行“ls ./”命令,运行前切换到/home目录下。

操作如下:

[root@centos01 ~] ansible web -m command -a "chdir=/ ls ./"
 2、shell模块

shell模块在远程主机执行命令,相当于调用远程主机的Shell进程

[root@centos01 ~] ansible web -m shell -a "echo hello world "        <!--输出到屏幕-->
192.168.100.20 | SUCCESS | rc=0 >>
hello world
 3、copy模块

copy模块用于复制指定主机文件到远程主机的指定位置

[root@centos01 ~] ansible web -m copy -a "src=/etc/hosts 
dest=/root/a1.hosts mode=777 owner=root group=root"
<!--/将本机的hosts文件复制到web组中的所有主机上存放在家目录下的a1.hosts目录,
权限是777,属主是root,属组是root-->
 4、hostname模块

hostname模块用于管理远程主机上的主机名

[root@centos01 ~] ansible 192.168.100.20 -m hostname -a "name=test"
<!--将192.168.100.20的主机名改为test,
但是192.168.100.20需要敲一下bash才生效-->
 5、service模块

service模块为用来管理远程主机上的服务的模块

[root@centos01 ~] ansible web -m service -a "name=httpd 
enabled=yes state=restarted"
<!--设置httpd服务重新启动和开机自动启动 相当于systemctl restart httpd-->
 6、user模块

user模块主要用于管理远程主机上的用户账号

[root@centos01 ~] ansible web -m user -a "name=user01 
system=yes uid=502 group=root groups=root shell=/etc/nologin 
home=/home/user01 password=pwd@123"
<!--在web组的所有主机上新建一个系统用户,UID为502,
属组是root,名字是user01,密码是pwd@123-->

 

相关参考中文官网:Ansible中文权威指南- 国内专业的Ansible中文官方学习手册

https://www.cnblogs.com/-wenli/p/13292855.html

shell和ansible自动化运维实例_ansible playbook执行shell脚本_一个高效工作的家伙的博客-CSDN博客

http://www.lryc.cn/news/197667.html

相关文章:

  • 【大数据 - Doris 实践】数据表的基本使用(三):数据模型
  • PMP和CSPM证书,怎么选?
  • 企业宣传为何要重视领军人物包装?领军人物对企业营销的价值和作用分析
  • 什么是内存泄漏?JavaScript 垃圾回收机制原理及方式有哪些?哪些操作会造成内存泄漏?
  • C++项目实战——基于多设计模式下的同步异步日志系统-⑫-日志宏全局接口设计(代理模式)
  • 京东数据接口:京东数据分析怎么做?
  • 使用Git在本地创建一个仓库并将其推送到GitHub
  • 5.覆盖增强技术——PUCCHPUSCH
  • 徐建鸿:深耕中医康养的“托钵行者”
  • 基于svg+js实现简单动态时钟
  • 端到端测试(End-to-end tests)重试策略
  • 三相交错LLC软启动控制驱动波形分析--死区时间与占空比关系
  • 数据结构详细笔记——栈与队列
  • JVM调试命令与调试工具
  • 《软件方法》第1章2023版连载(07)UML的历史和现状
  • chromium 54 chrome 各个版本发布功能列表(109-119)
  • Linux实现原理 — I/O 处理流程与优化手段
  • 第 367 场 LeetCode 周赛题解
  • 最新百度统计配置图文教程,获取siteId、百度统计AccessToken、百度统计代码教程
  • 【C++ 学习 ㉘】- 详解 C++11 的列表初始化
  • OpenCV12-图像卷积
  • MVCC与BufferPool缓存机制
  • POI、Easy Excel操作Excel
  • 网络安全(黑客)自学方向
  • react写一个简单的3d滚轮picker组件
  • Compose竖向列表LazyColumn
  • 6.自定义相机控制器
  • 一文带你GO语言入门
  • 前后端小项目链接
  • 编辑器功能:用一个快捷键来【锁定】或【解开】Inspector面板