ansible实训-Day1(Liunx基础问题总结及ansible安装环境前置部署)

一、前言

        该篇是对本学期Ansible实训第一天内容的原理性总结,主要包括Liunx相关问题等基础性的问题总结以及ansible安装环境的前置部署。

二、Liunx是什么

        Linux是一种自由和开放源代码的Unix操作系统,最初由芬兰人Linus Torvalds于1991年创建。与其他许多操作系统不同,Linux被开发和维护由一个全球性的社群共同努力。Linux运行着各种设备,从手机、平板电脑和个人电脑到服务器和超级计算机。 Linux操作系统提供了诸如多用户、多任务、虚拟内存、多进程和多线程等功能,被广泛应用于科学、工程、商业和娱乐等各个领域。

三、为什么服务器多用liunx不用windows

        (1)开放源代码

        Linux是开源的操作系统,可以自由获得和修改代码。这为服务器中的开发人员提供了更大的灵活性和责任。他们可以自定义和修改操作系统,以满足特定的需求,并为客户提供更好的服务。

        (2)安全性

        Linux因其高度安全而闻名。与Windows相比,Linux操作系统遭到攻击和破坏的风险更小,因为它的安全性设施更加完善,而且更新更及时。此外,Linux用户权限管理较为严格,可以有效降低用户操作对系统安全造成的威胁。

        (3)稳定性

        Linux操作系统非常稳定,可以长时间运行而不会出现系统崩溃的问题。这对于需要24/7运行的服务器非常重要,可以为在线商店、社交媒体等提供不间断的服务。

        (4)性能优化

        Linux操作系统具有优异的性能优化能力,能够根据你的硬件和软件资源提供最佳的性能。Linux操作系统可以轻松承受大型服务器的负载和流量,提供更稳定的服务。

        (5)可定制性

        Linux操作系统非常用户友好,并在服务器环境中拥有广泛的支持,可以轻松地安装和运行各种脚本和软件。而Windows的操作系统会受到商业授权和版权限制,用户无法自由定制和修改操作系统。

        因此,以上几点使得Linux操作系统成为了服务器环境下首选的操作系统,被众多互联网公司和数据中心所青睐。

四、许可证的类别

(1) 宽松式的许可

        宽松版许可(Copyleft License)也称为强约束许可, 基本上是在学术研究者、社会团体之间流传的开源许可证。 与公共版许可相比,宽松版许可有更多的限制和要求。 它的特点是:

  • 许可证要求代码可以在使用和修改时,必须放在同一许可下。
  • 许在广泛语言之间转让代码时,保留了更多的控制权。
  • 强化向源代码社区做贡献的文化。

        在宽松版许可证之下,每个人可以使用、修改、分发代码,甚至在闭源的项目中使用它们。但是,必须保持相同的许可条件。

① 没有担保

        “没有担保”指许可证的授权者不对软件提供任何担保或保证,不保证软件的质量和适用性。这意味着使用者需要自行承担软件使用的风险,如果软件出现问题,授权者不承担任何责任。

② 为所欲为

        “为所欲为”指可以自由使用、修改和分发源代码。这意味着使用者可以用宽松版许可证授权的代码做任何他们想做的事情,包括用于商业、私人和公共项目,可以将软件包含在闭源软件中等,没有任何限制。

③ 需要披露原作者

        “需要披露原作者”指在分发软件时,需要包含原始许可证文本和版权声明,并清楚地对原作者和贡献者进行署名,以便其他人可以追溯到该软件的起源和贡献,并且可以了解许可证协议的细节和限制。

        总之,宽松版许可证授权给用户更多的自由和灵活性,但是用户需要自己承担更大的责任和风险,同时需要遵守许可证的要求,尊重相应的版权和维护社区的互惠共赢精神。

(2)公共版许可

        公共版许可(Permissive License)也称为宽泛许可,是指允许代码自由使用、修改和分发的开源许可证。 其特点是:

  • 一般不强制使用任何特定声明或授权WiFi的条款。
  • 禁止裁剪掉软件的许可通告声明。
  • 可以将开源软件用于商业、私人和公共项目。·
  • 可以将软件包含在闭源软件中。
  • 不保证为每个分发的副本提供源代码。

        一些常见的公共版许可证包括MIT许可、BSD许可、Apache许可和ISC许可。

五、Ansible是什么

        Ansible是一种自动化IT工具,旨在大规模管理计算机系统和服务器的配置,部署应用程序和编排任务。它可以自动化需要重复进行的任务,例如安装和配置软件,部署和管理应用程序,以及监控和维护网络服务。

        Ansible是一款基于Python语言开发的工具,使用SSH和Python来管理远程计算机。它采用简单易懂的声明性语言YAML来描述管理任务,并将这些任务分解成较小的任务。Ansible使用模块来完成任务,支持众多操作系统和平台(包括Linux和Windows),并提供了与虚拟化技术(如Docker和VMware)和云提供商(如AWS和OpenStack)的集成。

        Ansible的优点包括:

  • 自动化:通过Ansible, 可以实现对大规模计算机系统和服务器的自动化管理。
  • 单一控制节点:Ansible只需要一个中心控制节点,无需在每台服务器上安装它的控制程序,从而大大降低了安装和维护的成本。
  • 可读性强:Ansible使用简单易懂的YAML语言,简化了复杂任务的编写和管理。
  • 可扩展性强:Ansible可以通过编写自定义模块或插件来扩展其功能。
  • 社区支持强:Ansible拥有庞大的社区,提供了大量的文档和模板,用户可以轻松从中获取支持。

        总之,Ansible是一种高效的IT自动化工具,可以帮助企业和个人更好地管理和维护他们的IT基础设施,提高操作效率和质量。

六、Liunx基础操作

(1)提权操纵

        ① su switch user --- 切换用户

        ② sudo super do --- 使用超级用户进行操作

        运行ansible时,一般情况下不使用root用户(安全性问题),使用普通用户即可

(2)用户、用户组、密码

① /etc/pwd 用户信息

② /etc/group 用户组信息

③ /etc/shadow 密码信息

(3)下列PWD命令行的含义如下

        ① root:x:0:0:root:/root:/bin/bash

        1. root: 用户名,这里指的是root用户,该用户默认拥有系统中最高的权限。
        2. x: 加密密码,实际的加密密码已经存放在shadow文件中,该字段通常为"x"。
        3. 0: 用户ID,也被称为UID。0是root用户的默认UID,表示其拥有最高权限。
        4. 0: 组ID,也被称为GID。0是root用户所属的组的默认GID,表示其拥有最高权限。
        5. root: 注释,通常是一段简要的用户描述信息。
        6. /root: 用户主目录,通常是用户的家目录,一般而言,root的主目录在/root,普通用户的在/home
        7. /bin/bash:环境变量,默认shell,表示root用户登录系统时所使用的默认shell是bash。(一般有两种/bin/bash默认允许交互,/bin/nologin默认拒绝交互)。 

        ② mail:x:12:postfix

        1. mail: 组名,这里指的是mail组。
        2. x: 组密码,通常是"x",因为组密码已经存放在gshadow文件中。
        3. 12: 组ID,也被称为GID。这里的12是mail组的默认GID。
        4. postfix: 附加组,是指一个用户除了其默认的主组(Primary group)外,还可以属于多个其他的组,这些额外的组就是该用户的附加组(Supplementary group)。

        ③ root$6$tBBimRRE6iiru3tT$JzvGaFXzSAFkf,ASup8Dve,4f2be9tpiVRGnH5ns05g4tbxF8aMTZCFFGOnipJ.Fs4Hit.g.ALZEu119wb/:::99999:7:::

        1.代表了用户名

        2.代表了用户的密码(加密)

                $ 加密等级

                $ salt:加盐

                $ 密钥、密文

        3.上次更改密码的日期:从1970年1月1日算起

        4.上次修改密码最短修改时间:

        5.密码过期时间(最长修改时间):

        6.告警期:用于向用户提醒密码即将过期

        7.inactive:宽限时间

        8.密码过期日:设置一个用户失效日期,从1970年1月1日算起

        9.预留字段

六、Ansible环境准备

(1)安装环境要求

        一台控制器,两台node,运行在Centos7.x中,不要minimal安装

(2)部署前的准备

        (1)安装三个节点

        三个节点采用Centos7.9操作系统,安装过程后续附上链接。

        (2)hostnamectl 修改虚拟机名称确保区分

        `hostnamectl`命令是用于修改系统主机名的工具,如果需要修改系统主机名,可以使用以下命令:

        Step1: 切换到root用户,使用以下命令切换:

su root

        Step2: 使用`hostnamectl`命令修改系统主机名,将`newhostname`替换成想要修改的新主机名,执行以下命令:

   ```
   hostname + 新用户名
   ```

           注意:修改主机名后,需要重新启动系统才能生效。

        Step3:可以使用以下命令来查看服务器当前的主机名:

    ```
    hostnamectl
    ```

        Step4:如果需要查看或修改`/etc/hostname`文件中的主机名配置,可以使用以下命令:

    ```
    nano /etc/hostname
    ```

    在打开的文件中修改主机名后保存并退出即可。

        (3)修改节点的IP地址为静态分配,方便后期进行SSH登录

        这里直接使用Centos7中的图形化界面进行修改:

        Step1:确认虚拟机需要所属的网段

        ① 在VMware中的编辑中查看网络编辑器

        ② 选择虚拟网络编辑器,由于该系统安装使用的是NAT模式,因此应和VM8在同一网段        

         Step2:通过Centos图形化界面修改IP地址

         修改为和VM8相同的网段即可,网关一般为该网段的x.x.x.2主机。

        Step3:重启网卡服务使最新的IP生效

                使用systemctl restart network.service指令重新启动网卡服务。

(3)SSH免密登录设置

        (1)配置controller使用ssh登录node1和node2

        Step1:验证controller对node1和node2的连通性

        Step2: 尝试ssh操作

         以controller控制node1为例,注意,该处进行ssh登录需要使用root模式,且输入的ssh密码应为node1的root密码。

        Step3:controller本地生成RSA公钥和私钥,并将公钥发送至node

        ① 创建公钥和私钥

        使用 ssh-keygen指令生成公钥私钥。

        ②  验证公钥成功生成 

        在.ssh路径下进行ls查看路径下的文件,如果出现id_rsa和id_rsa.pub,即说明公钥私钥生成成功。

        ③ 将公钥发送至node

        以发送至node2为例,使用ssh-copy-id -i ~/.ssh/id_rsa.pub north-node2@node2进行公钥的发送。

         ④ 进行免密SSH登录验证

        验证成功如下:

(4)sudo免密设置

        该部分以node1为例

        Step1:切换至root用户

        使用su root指令切换至root用户

        Step2:修改/etc/sudoers文件

        使用vim指令修改/etc/sudoers文件,找到文件下的“Same thing without a password
”添加如下信息:用户名 ALL=(ALL)       NOPASSWD: ALL,并使用wq!强制保存并退出,如下图所示。

         Step3:验证

        ① 使用普通用户,不加sudo进行cat /etc/shadow访问,发现被拒绝

         ② 使用普通用户,加sudo进行cat /etc/shadow访问,发现可以正常操作,且无需输入密码,说明免密sudo成功

      

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈Spring Cloud Gateway

网关:用户和微服务的桥梁 网关的核心是一组过滤器,按照先后顺序执行过滤操作。 Spring Cloud Gateway是基于webFlux框架实现,而webFlux框架底层则使用了高性能的Reactor模式通信框架的Netty Spring Cloud Gateway是Spring Cloud生态系统中的一个API网…

图解transformer中的自注意力机制

本文将将介绍注意力的概念从何而来,它是如何工作的以及它的简单的实现。 注意力机制 在整个注意力过程中,模型会学习了三个权重:查询、键和值。查询、键和值的思想来源于信息检索系统。所以我们先理解数据库查询的思想。 假设有一个数据库&#xff0c…

使用Servlet完成单表的增删改查功能以及使用模板方法设计模式解决类爆炸问题(重写service模板方法)

使用Servlet做一个单表的CRUD操作 开发前的准备 导入sql脚本创建一张部门表 drop table if exists dept; create table dept(deptno int primary key,dname varchar(255),loc varchar(255) ); insert into dept(deptno, dname, loc) values(10, XiaoShouBu, BeiJing); inser…

Python小游戏集合(开源、开源、免费下载)

Python小游戏集合 0. 前言1. 为什么用Python做游戏2. 小游戏集合及源代码(整理不易,一键三连)2.1 外星人小游戏2.2 塔防小游戏2.3 三国小游戏2.4 打飞机游戏2.5 飞机大战小游戏2.6 玛丽快跑小游戏2.7 涂鸦跳跃小游戏2.8 猜数字小游戏2.9 坦克…

吃透JAVA的Stream流操作,多年实践总结

在JAVA中,涉及到对数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的方式进行逐个处理,或者使用Stream的方式进行处理。 例如,现在有这么一个需求: 从给定句子中返回单词长度大于5的单词列表&#xf…

求解矩阵行列式因子、不变因子、初等因子、Jordan标准形

首先,我们先来简要了解一下行列式因子、不变因子和初等因子的概念。 下面举例说明。 例1 首先,我们要求 λ I − A λI-A λI−A 然后,我们先求行列式因子。 D 2 ( λ ) D_2(λ) D2​(λ)的求法如下: 然后,我们再求…

Linux文件系统论述

目录 前言 一.磁盘 1.1定义 1.2结构 1.3磁盘的寻找方式 1.4磁盘的逻辑/线性结构 1.5磁盘访问的基本单位 1.6磁盘的管理 二.Linux文件系统 2.1系统结构 2.2属性解析: 2.3inode相关块的解析: 2.4数据块的解析: 前言 学了一段时间的Linux操…

基于Python垃圾短信识别程序(KNN、逻辑回归、随机森林、决策树和多项式分布朴素贝叶斯、伯努利分布朴素贝叶斯等算法进行融合)—含python工程全源码

目录 前言总体设计系统整体结构图请求流程图系统流程图 运行环境Python 环境jieba分词库Scikit-learn 库nginxphp 模块实现1. 前端模块2. 后端模块 系统测试1. 测试结果2. 结果对比3. 可视化部分 工程源代码下载其它资料下载 前言 本项目以Python为基础,旨在开发一…

Docker 安全及日志管理

目录 前言一、Docker 容器与虚拟机的区别1. 隔离与共享2. 性能与损耗 二、Docker 存在的安全问题1.Docker 自身漏洞2.Docker 源码问题 三、Docker 架构缺陷与安全机制四、Docker 安全基线标准五、容器相关的常用安全配置方法六、限制流量流向七、镜像安全八、避免Docker 容器中…

rust 集合、错误处理、泛型、Trait、生命周期、包

集合组织特性相同的数据;泛型可以定义任何抽象数据类型;生命周期限制所有权的作用域范围;错误处理使程序更健壮。 集合 一组特性相同的数据集合,除了基本数据类型的元组、数组。rust 标准库提供了一些非常有用的数据结构。 Vec…

短视频seo源码开发部署技术解析

短视频seo开发需要哪些技术 应用程序优化技术:包括应用程序的各种元素(如标题、描述、关键字、图标等)的优化和设置,以及应用程序内部链接和导航的合理布局和设置。 视频内容优化技术:包括视频标题、描述、标签、封面…

互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景

多线程访问共享资源的时候,避免不了资源竞争而导致数据错乱的问题,所以我们通常为了解决这一问题,都会在访问共享资源之前加锁。 最常用的就是互斥锁,当然还有很多种不同的锁,比如自旋锁、读写锁、乐观锁等&#xff0…

django中发送get post请求并获得数据

django中发送get post请求并获得数据 项目结构如下注册路由 urls.py在处理函数中处理请求 views.py进行 get的请求01浏览器 get请求传参数02服务器django get参数解析获取01浏览器 post的发送浏览器get 请求 获取页面返回的 form 发送post请求 带参数 02服务器django的post请求…

【嵌入式Qt开发入门】在Ubuntu下编写C++

在 Ubuntu 上面编写 C,本文内容主要介绍在 Ubuntu 在终端窗口下使用 vi/vim 编辑一 个 C源文件。通过编写最简单的示例“Hello,World!”。带领大家学习如何在 Ubuntu 终端下编辑和编译 C。这里要求大家会在 Ubuntu 上使用 vi/vim,也就是要求大…

Git分支使用方法

目录 前言 一、查看可用分支 二、创建新分支 三、切换到新分支 四、在新分支上进行工作 五、提交更改 六、切换回主分支 七、删除分支 八、合并分支 前言 分支是指在同一个代码仓库中的不同版本线。它们可以被用来同时开展不同的开发任务、修复bug或实现新功能&#…

【面试题12】HTTP协议三次握手和四次挥手分别是什么

文章目录 一、概览二、三次握手2.1 第一步:客户端向服务端发送 SYN(同步)包2.2 第二步:服务端返回 ACK(确认)包和 SYN 包2.3 第三步:客户端返回 ACK(确认)包 三、四次挥手…

【AudioCaps数据集】windows10下载AudioCaps数据集,附百度网盘下载链接

🔥 AudioCaps是从AudioSet数据集中筛选再加工得到的数据集。 AudioCaps数据集的下载使用python的第三方库 audiocaps-download,根据README.md的提示,先进行配置下载环境: 📣 AudioCaps的下载环境配置分为四步&#x…

反AI来了…尼康的Natural Intelligence

a mutant_umbrella tree shaped like a nuclear bomb explosion,a photo-realism photograph, 4k, ultra realistic VS a mutant_umbrella tree shaped like a nuclear bomb explosion 尼康发起了一次名为:Natural Intelligence ,“不要放弃现实世界”的…

电商--抢购架构总结

文章目录 背景业务流程业务难点技术难点技术方案技术方向具体落地客户端流控网关流控容器流控后端接口流控数据库流控 流控总结优化读取加速异步化流程处理系统扩容 压测监控 总结参考文献 背景 这是个在做NFT电商项目时遇到的场景,要求运营可以商家某个系列的NFT商…

PHP 文心千帆API接口对接

一:API 调用流程简介 创建一个智能云应用。根据实际需求创建智能云应用。创建成功后,获取AppID、API Key、Secret Key 等信息。API 授权。对应用的 AppID 进行授权。获取接口访问凭证 access_token 。根据第1步获取的 API Key 和 Secret Key &#xff0c…