ansible特点、工具合集、搭建、命令合集

目录

一、ansible特点

二、ansible应用 

三、ansible搭建

1、 实验环境,准备三台服务器,关闭防火墙

2、在ansible(192.168.1.12)服务器上yum安装ansible

3、创建ssh免交互登录

四、ansible配置

五、ansible命令

1)ansible

2)ansible-doc

3)ansible-playbook

4) ansible-console 


一、ansible特点

  1. Ansible基于python开发,运维工程师对其二次开发相对容易
  2. Ansible拥有丰富的内置模块,基本可以满足一切要求
  3. 管理模式非常简单,一条命令可以影响上千台机器
  4. 无客户端模式设计,底层基于SSH通信
  5. Ansible发布后也陆续被AWS,Google,Cloud Platfrom,Microsoft Azure,Cisco,HP,VMware,Twitter等大公司接纳并投入使用

二、ansible应用 

Ansible工具集合了inventory,Moudles,Plugins和API。其中,inventory用来管理设备列表,可以通过分组(不同的业务)实现,对组的调用直接影响组内所有的主机;Moudles是各种执行模块,几乎所有的管理任务都是通过模块来执行的;Plugins提供了各种附加功能;API为编程人员提供了一个调用接口,可以做Ansible的二次开发具体表现如下:

  1. Ansible Playbook:任务脚本,编排定义Ansible任务集的配置文件,由Ansible按序依次执行,通常是JSON格式的YML/YAML文件;
  2. inventory:Ansible管理主机清单
  3. Moudle:Ansible执行命令功能模块,多数为内置的核心模块也可以用户自定义;
  4. Plugins:模块功能的补充,如连接类型插件,循环插件,变量插件,过滤插件等,该功能不常用。
  5. API:提供第三方程序调用的应用程序编程接口;

三、ansible搭建

1、 实验环境,准备三台服务器,关闭防火墙

192.168.1.12    ansible

192.168.1.133  client1

192.168.1.134  client2

[root@ansible ~] systemctl stop firewalld
[root@ansible ~] setenforce 0
[root@ansible ~] iptables -F

2、在ansible(192.168.1.12)服务器上yum安装ansible

[root@ansible ~] yum -y install epel-release
[root@ansible ~] yum -y install ansible

3、创建ssh免交互登录

[root@ansible ~] ssh-keygen -t rsa
[root@ansible ~] ssh-copy-id root@192.168.1.133
[root@ansible ~] ssh-copy-id root@192.168.1.134[root@client1 ~] ssh 192.168.1.12  #测试一下,没有问题
Last login: Fri Jul 14 09:36:20 2023 from 192.168.1.108
[root@ansible ~] exit
登出
[root@client1 ~] ssh 192.168.1.134
Last login: Fri Jul 14 09:37:07 2023 from 192.168.1.108
[root@client2 ~] exit
登出

四、ansible配置

1、inventory是Ansible管理主机信息的配置文件,相当于系统的Hosts文件功能,默认存放在/etc/ansible/hosts。在hosts文件中通过分组来组织设备,Ansible通过inventory来定义主机和分组,通过ansible命令中是用选项-i或者--inventory-file指定inventory。

[root@ansible ~] cp /etc/ansible/hosts{,.bak}
[root@ansible ~] vim /etc/ansible/hosts
[Rich]  #自己起个名字
192.168.1.133
192.168.1.134[root@ansible ~]# ansible -i /etc/ansible/hosts Rich -m ping
192.168.1.133 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"
}
192.168.1.134 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"
}

2、配置完成后可以针对hosts定义服务组件进行远程操作,也可以针对组中的指定的某一个或多个主机操作,下面接收如何针对特定的服务器操作

1)针对Rich组中的192.168.200.112主机操作,通--limit参数限定主机的变更

[root@ansible ~] ansible Rich -m command -a "head -5 /etc/passwd" 
192.168.1.133 | CHANGED | rc=0 >>
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
192.168.1.134 | CHANGED | rc=0 >>
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

2)只对192.168.200.0网段主机进行操作。通过通配符限定主机变更

[root@ansible ~] ansible 192.168.1.* -m command -a "head -5 /etc/passwd"192.168.1.133 | CHANGED | rc=0 >>
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
192.168.1.134 | CHANGED | rc=0 >>
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

五、ansible命令

1、Ansible的维护命令大多以ansible开头,在终端输入ansible后连续按两次tab键,会补全所有以ansible字母开头的命令。

[root@ansible ~] ansible 
anaconda-ks.cfg  .bash_logout     .cshrc           .tcshrc
.ansible/        .bash_profile    .pki/            .viminfo
.bash_history    .bashrc          .ssh/            
[root@ansible ~] ansible-
ansible-2             ansible-doc-2         ansible-playbook-2.7
ansible-2.7           ansible-doc-2.7       ansible-pull
ansible-config        ansible-galaxy        ansible-pull-2
ansible-connection    ansible-galaxy-2      ansible-pull-2.7
ansible-console       ansible-galaxy-2.7    ansible-vault
ansible-console-2     ansible-inventory     ansible-vault-2
ansible-console-2.7   ansible-playbook      ansible-vault-2.7
ansible-doc           ansible-playbook-2   

1)ansible

Ansible是生产环境中使用非常频繁的命令之一,主要在以下场景应用

  1. 非固化需求
  2. 临时一次性操作
  3. 二次开发接口调用语法ansible <host-pattern> [options]

语法:ansible <host-pattern> [options] 

常用:

ansible               ansible-console       ansible-doc-2.7       ansible-playbook      ansible-pull-2.7

ansible-2             ansible-console-2     ansible-galaxy        ansible-playbook-2    ansible-test

ansible-2.7           ansible-console-2.7   ansible-galaxy-2      ansible-playbook-2.7  ansible-vault

ansible-config        ansible-doc           ansible-galaxy-2.7    ansible-pull          ansible-vault-2

ansible-connection    ansible-doc-2         ansible-inventory     ansible-pull-2

可用选项如下

  • -v(--verbose):输出详细的执行过程信息,可以得到执行过程所有信息
  • -i PATH(inventory=PATH):指定inventory信息,默认为/etc/ansible/hosts
  • -f NUM(--forks=NUM):并发线程数,默认为5个线程
  • --private-key=PRIVATE_KEY_FILE:指定密钥文件
  • -m NAME,--moudle-name=NAME:指定执行时使用的模块
  • -M DIRECTORY(--module-path=DIRECTORY):指定模块存放路径,默认为/usr/share/ansible,也可以通过ANSIBLE_LIBRARY设定默认目录
  • -a ARGUMENTS(--args=ARGUMENTS):指定模块参数
  • -u USERNAME(--user=USERNAME):指定远程主机USERNAME运行命令
  • -l subset(--limit=SUBSET):限定运行主机
  • --list-hosts:列出符合条件的主机列表,不执行任何命令

 举例

检查所有主机是否存活
[root@ansible ~] ansible all -f 5 -m ping
192.168.1.134 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"
}
192.168.1.133 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"
}
列出Rich组中所有主机列表
[root@ansible ~] ansible Rich --list-hosthosts (2):192.168.1.133192.168.1.134
批量显示Rich组中的磁盘使用情况
[root@ansible ~] ansible Rich -m command -a "df -Th"
192.168.1.133 | CHANGED | rc=0 >>
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  898M     0  898M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  900M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.8G   16G   11% /
/dev/sda1               xfs      1014M  195M  820M   20% /boot
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
192.168.1.134 | CHANGED | rc=0 >>
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  898M     0  898M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  900M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.9G   16G   11% /
/dev/sda1               xfs      1014M  195M  820M   20% /boot
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
/dev/sr0                iso9660   9.5G  9.5G     0  100% /media/cdrom
  1. Rich需要提前在/etc/ansible/hosts文件中定义组
  2. Ansible的返回结果非常友好,一般会用三种颜色执行结果:红色,绿色和橘黄色,其中红色表示执行过程中有异常,橘黄色表示命令执行后目标有状态变化,绿色表示执行成功且没有对目标机器做修改

2)ansible-doc

语法ansible-doc [options] [module......]

 ansible-doc用来查询ansible模块文档的说明,类似于man命令,针对每个模块都有详细的用法说明及应用案例介绍

[root@ansible ~]# ansible-doc -l #查看总帮助

[root@ansible ~]# ansible-doc -s shell #查看shell模块的帮助

[root@ansible ~]# ansible-doc -s raw

1)列出支持的模块

[root@ansible ~] ansible-doc -l
fortios_router_community_list                                 Configure commun...
azure_rm_devtestlab_info                                      Get Azure DevTes...
ecs_taskdefinition                                            register a task ...
avi_alertscriptconfig                                         Module for setup...
tower_receive                                                 Receive assets f...

2)查询ping模块的说明信息

root@ansible ~] ansible-doc ping 			#=ansible-doc -s ping
> PING    (/usr/lib/python2.7/site-packages/ansible/modules/system/ping.py)A trivial test module, this module always returns `pong' on successful contact. Itdoes not make sense in playbooks, but it is useful from `/usr/bin/ansible' to verify

3)ansible-playbook

语法:ansible-playbook playbook.yml

Ansible-playbook是日常应用中使用频率最高的命令,类似于Linux系统中的sh或source命令,用来执行系列任务,其工作机制是,通过读取编写好的playbook文件实现集中处理任务,ansible-playbook命令后跟yml或者yaml格式的playbook文件,playbook文件存放了要执行的任务代码

4) ansible-console 

ansible-console是ansible为用户提供的一款交互式工具,类似于Windows中的cmd以及Linux中的shell,用户可以在ansible-console虚拟出来的终端上做像shell一样使用ansible内置的各种命令,这为习惯于使用shell交互方式的用户提供了良好的体验,在终端输入ansible-console命令后显示如下

[root@ansible ~] ansible-console
Welcome to the ansible console.
Type help or ? to list commands.
root@all (2)[f:5]$ cd Rich
root@Rich (2)[f:5]$ list
192.168.1.133
192.168.1.134
root@Rich (2)[f:5]$ exit

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

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

相关文章

手机外壳缺陷视觉检测软硬件方案

单独使用一种光源效果图 同轴光会出现亮度不够的情况&#xff1b;回形面光因为光源中间的圆孔会使图像有阴影&#xff0c;造成图像效果不均衡&#xff0c;所以不采用单独光源打光 使用同轴回形面光源效果图 回形光源照亮产品要寻找的边缘&#xff0c;同轴光源起到补光的作用&a…

SpringCloud学习路线(6)—— 远程调用HTTP客户端Feign

一、Feign替代RestTemplate RestTemplate示例 String url "http://userservice/user/" order.getUserId(); User user restTemplate.getForObject(url, User.class);RestTemplate的缺陷&#xff1a; 代码可读性差&#xff0c;编码体验不统一。参数复杂URL难以维…

需求分析案例:全局错误码设计

本文介绍了我在一些业务系统中遇到的错误提示问题&#xff0c;以及进行需求分析和设计实现的过程&#xff0c;欢迎进行交流和指点&#xff0c;一起进步。 1、需求起源 作为程序员&#xff0c;或多或少&#xff0c;都经历过如下场景&#xff1a; 场景1&#xff1a; 产品经理&a…

智慧校园能源管控系统

智慧校园能源管控系统是一种搭载了物联网技术、大数据技术、大数据等技术性智能化能源管理方法系统&#xff0c;致力于为学校提供更高效、安全性、可信赖的能源供应管理和服务。该系统包括了校内的电力工程、水、气、暖等各类能源&#xff0c;根据对能源的实时检测、数据统计分…

Django 创建应用

第一步&#xff1a;python.exe .\manage.py startapp submit_score 创建后生成的submit_score文件夹&#xff0c;里面文件如下&#xff1a; PS E:\code\portrait> python.exe .\manage.py startapp submit_score PS E:\code\portrait> ls目录: E:\code\portraitMode …

文心一言 VS 讯飞星火 VS chatgpt (63)-- 算法导论6.5 2题

文心一言 VS 讯飞星火 VS chatgpt &#xff08;63&#xff09;-- 算法导论6.5 2题 二、试说明 MAX-HEAP-INSERT(A&#xff0c;10)在堆A(15&#xff0c;13&#xff0c;9&#xff0c;5&#xff0c;12&#xff0c;8&#xff0c;7&#xff0c;4&#xff0c;0&#xff0c;6&#xf…

leetcode 13. 罗马数字转整数

罗马转整数要考虑先后顺序 当排在前面的罗马数字大于后面的罗马数字&#xff0c;就正常化成阿拉伯数字相加 如果小&#xff0c;那就是将小的数转成负数&#xff0c;再加就ok。 但也是需要模拟的&#xff0c;就是哪一字母代表哪个数值。 class Solution:def romanToInt(self, s…

【业务功能篇48】后端接口开发的统一规范

业务背景&#xff1a;日常工作中&#xff0c;我们开发接口时&#xff0c;一般都会涉及到参数校验、异常处理、封装结果返回等处理。而我们项目有时为了快速迭代&#xff0c;在这方面上有所疏忽&#xff0c;后续导致代码维护比较难&#xff0c;不同的开发人员的不同习惯&#xf…

2.3 QLayout一探究竟(上)

2.布局 2.1 布局简介 2.2 Qt四大布局介绍及使用方法 2.2.1 QBoxLayout讲解及示例 2.2.1.1 QHBoxLayout介绍 2.2.1.1 QVBoxLayout介绍 2.2.2 QFormLayout讲解及示例 2.2.3 QGridLayout讲解及示例 2.2.4 QStackedLayout讲解及示例 2.3 QLayout一探究竟 2.3.1 布局的基础单元-QL…

HTTP进化史:从HTTP1的简单到HTTP3的强大

文章目录 &#x1f4c8;I. HTTP1⚡A. 基本特点⚡B. 特点⚡C. 优缺点 &#x1f4c8;II. HTTP2⚡A. 基本特点⚡B. 特点⚡C. 优缺点 &#x1f4c8;III. HTTP3⚡A. 基本特点⚡B. 特点⚡C. 优缺点 &#x1f4c8;IV. 总结&#x1f4c8;附录&#xff1a;「简历必备」前后端实战项目&am…

[RK3568] AMP架构

Rockchip 平台异构多系统 AMP&#xff08;非对称多核架构&#xff09;的开发软件包&#xff0c;支持 Linux(Kernel-4.19)、 Baremetal(HAL)、RTOS(RT-Thread) 组合AMP构建形式。 Baremetal(HAL) Baremetal表示裸机操作系统&#xff0c;HAL是裸机操作系统的一种。 裸机嵌入式系…

MySQL不适合创建索引的7种情况

1. 在where中使用不到的字段&#xff0c;不要设置索引 WHERE条件&#xff08;包括order by &#xff0c;group by&#xff09; 2. 数据量小的表最好不要使用索引 表记录太少&#xff0c;比如少于1000个&#xff0c;创建索引会先查索引&#xff0c;再回表&#xff0c;查询花费…

01 QT命名规范,快捷键

命名规范&#xff1a; 类名首字母大写&#xff0c;单词和单词之间首字母大写函数名、变量名 首字母小写&#xff0c;单词和单词之间首字母大写 快捷键&#xff1a; 运行&#xff1a;ctrl r 编译&#xff1a;ctrl b 注释&#xff1a;ctrl / 字体缩放&#xff1a;ctrl 鼠…

设计模式之工厂模式-简单工厂、工厂方法、抽象工厂模式

工厂模式是一种常见的创建型设计模式&#xff0c;它提供了一种创建对象的方法&#xff0c;将对象的创建与使用分离开来&#xff0c;可以减少代码的耦合度。在工厂模式中&#xff0c;我们通过一个工厂类来创建对象&#xff0c;而不是直接在代码中实例化对象。 工厂模式有三种常…

C++并发编程之共享数据(二)

3.1 条件竞争 恶性条件竞争通常发生于完成对多于一个的数据块的修改。例如对一个双向链表的结点的修改。该节点有两个指针。 避免条件竞争的两种方式&#xff1a; 方式一&#xff1a;确保只有进行修改的线程才能看到不变量被破坏时的中间状态。从其他访问线程的角度来 看&…

Git 常用命令

Git操作 克隆远程仓库到本地 # Git初始化&#xff08;仅一次使用的适合需要设置&#xff09; git config --global user.name "用户名" git config --global user.email "邮箱账号"# 朴实无华的拉取 git clone <url>分支 # 查看分支 git branch # …

Spring Boot 配置属性设置优先级

文章首发地址 Spring Boot设计了非常特殊的加载指定属性文件&#xff08;PropertySource&#xff09;的顺序&#xff0c;以允许对属性值进行合理的覆盖。属性值会以下面的优先级进行设置。 home目录下的Devtools全局设置属性&#xff08;~/.spring-boot-devtools.properties&a…

【每日随笔】摩托车安全驾驶 ② ( 头盔选择 | 新手上路技巧 | 摩托车驾驶速度 | 保命法则 | 骑车心理态度 )

文章目录 一、摩托车安全驾驶0、头盔选择1、新手上路技巧2、摩托车驾驶速度3、保命法则4、骑车心理态度 重要的保命法则 : ① 不变道 : 前方 有车 , 就停车 , 等他走你再走 , 千万不要随意变道 , 摩托车变道很危险 , 一个不好就进骨科 , 而且还是你自己全责 ; 只有在 左转 ( …

Puppeteer 使用教程-实战篇(爬取图片、视频、音频,页面数据)

目录 前言 一、 获取实体店铺信息 二、 获取全国各省市县地图json数据 三、 cookies 四、 获取网络图片、视频资源 五、 自动化测试 总结 前言 续上篇&#xff0c;我们简单讲述一下puppeteer常见的应用场景&#xff0c;包括静态页面数据获取&#xff0c;网络请求获取截取…

第 5 章 Spark Shuffle 解析

第 5 章 Spark Shuffle 解析 5.1 Shuffle 的核心要点1. 数据分区&#xff1a;2.数据传输&#xff1a;3. 数据排序&#xff1a;4.数据聚合&#xff1a;5. 数据重分发&#xff1a;6.数据持久化&#xff1a;5.1.1 ShuffleMapStage 与 ResultStage 5.2 HashShuffle 解析5.2.1 未优化…