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

news2024/9/25 13:23:11

一、前言

        该篇是对本学期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成功

      

 

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

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

相关文章

hot20-旋转图像

leetcode原题链接:旋转图像 题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入&am…

OpenCV 学习笔记(C++)(1.4W字)

一切图像皆Mat OpenCV中图像对象的创建与复制 Mat基本结构 Mat对象数据组成:头部和数据部分,头部存储图像的属性(大小、宽高、图像类型:浮点数类型、字节类型、16位整型、32位整型、双精度浮点型,通道数量和获取途径…

【半监督图像分类 2022 CVPR 】Semi-ViT

【半监督图像分类 2022 CVPR 】Semi-ViT 论文题目:Semi-supervised Vision Transformers at Scale 中文题目: 论文链接:https://arxiv.org/abs/2208.05688 论文代码:https://github.com/amazon-science/semi-vit 发表时间&#xf…

数据结构07:查找[C++][平衡二叉排序树AVL]

图源:文心一言 考研笔记整理1w字,小白友好、代码可跑,请小伙伴放心食用~~🥝🥝 第1版:查资料、写BUG、画导图、画配图~🧩🧩 参考用书:王道考研《2024年 数据结构考研复习…

Linux 超级漂亮的 Shell

先来一张美图 zsh 介绍 1 Linux shell Linux/Unix 提供了很多种 Shell,为毛要这么多 Shell? 难道用来炒着吃么?那我问你,你同类型的衣服怎么有那么多件?花色,质地还不一样。写程序比买衣服复杂多了&#xf…

在vite+vue3中使用less

目录标题 一、首先,安装插件二、在 vite.config.js中配置三、最后在模版里声明css类型 一、首先,安装插件 npm install less npm install less-loader二、在 vite.config.js中配置 css: {preprocessorOptions: {less: {math: "always", // 括…

VS里拉取时候,变成变基中,变成分离分支状态,git 头指针分离于 baf67ff

分离头指针(detached HEAD) 通常,我们工作在某一个分支上,比如 master 分支。这个时候 master 指针和 HEAD 指针是一起前进的,每做一次提交,这两个指针就会一起向前挪一步。但是在某种情况下(例…

docker搭建达梦数据库

搭建达梦数据库 搭建达梦数据库 拉取镜像 # 拉取镜像 docker pull registry.cn-shanghai.aliyuncs.com/techerwang/dbhub:jem_dm8 或去官网下载 https://eco.dameng.com/document/dm/zh-cn/start/dm-install-docker.html我是选择了去官网下载 然后上传到linux服务器 do…

Selenium教程__按钮的点击、文本框的输入和清除操作(3)

from selenium import webdriverdriver webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com")# 定位元素 input_box driver.find_element_by_id("kw") search_btn driver.find_element_by_id("su")# sen_keys&a…

pycharm修改文件大小限制

场景: 方法: 打开pycharm 安装目录下的idea.properties 增加配置项:idea.max.intellisense.filesize99999

电脑word如何转化为pdf格式,其实非常简单!

作为一名在职场工作多年的资深达人,我们都知道工作中常常需要转换各种文件格式,其中最常见的就是Word文档和PDF文档。有时候根据领导、客户或甲方的要求,我们需要进行格式转换,尤其是将Word转换为PDF格式。PDF格式的文件不仅方便阅…

Spring基础知识(四)

目录 1.Spring包含的模块主要有什么 2.Core Container的作用 3.Data Access/Integration模块的作用 4.AOP模块的作用 5.Spring Web模块的作用 6.Test模块的作用 7.如何将一个类声明为Bean 8.Component和Bean的区别 9.能够注入Bean的注解有什么 10.Resource注解 1.Spr…

【Java】Java 中格式化字符串:String.format() 方法

本文仅供学习参考! 相关文章地址: https://www.cnblogs.com/Dhouse/p/7776780.html https://www.javatpoint.com/java-string-format https://www.geeksforgeeks.org/java-string-format-method-with-examples/ 前言 虽然System.out.println()适合调试和…

5 STM32复位和时钟控制

STM32的复位功能 系统复位: 系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器为它们的复位数值。(按键复位和软件复位属于系统复位) 电源复位: 电源复位将复位除了备份区域外的所有寄存器。…

【Flink】DataStream API使用之转换算子(Transformation)

转换算子(Transformation) 数据源读入数据之后,就是各种转换算子的操作,将一个或者多个DataSream转换为新的DataSteam,并且Flink可以针对一条流进行转换处理,也可以进行分流或者河流等多流转换操作&#xf…

sql with子语句的理解

在用sqlite时,用到了with子语句,记录下对其的理解 目的:在1个字段中找到真正包含的数据,一般用于like,但该字段可能是复杂的字符串数组。 例子数据,如: 【E2806894200050010B93C473,123456】…

软件分享:Cpu-Z电脑CPU检测工具介绍(附下载)

目录 一、软件介绍 二、功能介绍 三、使用方法 1、通过 CPU-Z 查看 CPU 信息 2、缓存信息 3、主板信息 4、内存信息 5、内存规格信息(SPD) CPU是计算机中负责读取指令,对指令译码,并执行指令的核心部件。CPU自产生以来&am…

chatgpt赋能python:用Python计算BIM:优点、应用和结论

用Python计算BIM:优点、应用和结论 Building Information Modeling(BIM)是一种数字化的建筑设计和施工方法,它包括从建筑物的设计、施工到维护和拆除的整个生命周期。BIM在大规模工程建设中越来越受到欢迎,Python编程…

单片机强排热水器方案

单片机强排热水器方案 MCU型号 MM32SPIN05TW、MM32SPIN080C 产品概述 MM32SPIN05TW本产品使用高性能的ArmCortex-M0为内核的32位MCU,最高工作频率可达72MHz,内置高速存储器,丰富的I/O端口和外设连接到外部总线。本产品包含1个12位ADC、1个比…

【群智能算法改进】基于二次插值策略的改进白鲸优化算法 改进后的EBWO[3]算法【Matlab代码#44】

文章目录 【获取资源请见文章第5节:资源获取】1. 原始BWO算法2. 基于二次插值策略的EBWO算法3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节:资源获取】 1. 原始BWO算法 白鲸优化算法 (BWO,beluga whale optimization)…