Linux Ansible详解

作用:

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

特性

1.no agent: 不需要在被管控主机上安装任何软件

2.no server: 无服务器端,使用时直接运行命令即可

3.modules in any languages:基于模块工作,可使用任意语言开发模块,

4.yaml,not code:使用yaml语言定制剧本playbook,

5.ssh by default:基于SSH工作

优点

(1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;

(2)、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;

(3)、使用python编写,维护更简单,ruby语法过于复杂;

ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

(1)、连接插件connection plugins:负责和被监控端实现通信;

(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3)、各种模块核心模块、command模块、自定义模块;

(4)、借助于插件完成记录日志邮件等功能;

(5)、playbook(yaml语言):剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

Ansible的安装部署:

方法1:

在线安装(EPEL源)

方法2:

自己制作本地yum源

[[email protected] ~]# yum install -y ansible

ansible的配置文件:

[[email protected] ~]# rpm -qc ansible

/etc/ansible/ansible.cfg

/etc/ansible/hosts

/etc/ansible/hosts------------主机配置文件

写法1:

node1.ansible.com

node2.ansible.com

192.168.1.1

写法2:以组的方式

[webserver]

192.168.10.1

192.168.10.2

[dbserver]

192.168.20.1

192.168.20.2

ansible基于SSH的方式工作

基于用户名,密码

192.168.10.1 ansible_ssh_user=root ansible_ssh_pass=redhat

基于密钥

Ansible的使用流程:

1、配置基于密钥的SSH

[[email protected] ~]# ssh-keygen -t rsa

[[email protected] ~]# ssh-copy-id -i 192.168.87.102

2、编辑/etc/ansible/hosts文件,指定被管理端的IP地址或者主机名

# vim /etc/ansible/hosts

[test]

192.168.87.102

3、使用ansible的模块

ansible模块

# ansible <PATTERN> -m <module_name> -a <arguments>

PATTERN的写法:

某一个主机组的名称 web

所有主机 all, *

写IP地址或系列主机名

one.example.com

one.example.com:two.example.com >>>支持写多个主机名,不同的主机名间使用冒号":"隔开

192.168.1.50

192.168.1.* >>>支持通配符

webservers:!phoenix >>>对属于webservers组中的主机,但不属于phoenix组的主机

webservers:&phoenix >>>对同时属于webservers和phoenix组中的主机进行操作

正则表达式, 必须以~开头

~(web|db).*\.example\.com

查看ansible支持的模块

[[email protected] ~]# ansible-doc -l

查看模块支持的参数

# ansible-doc <模块名称>

[[email protected] ~]# ansible-doc ping

ansible模块的说明:

# ansible <pattern> -m <module_name> [-a <arguments>]

1、ping

检测被管理端是否在线

[[email protected] ~]# ansible test -m ping

192.168.87.102 | SUCCESS => {

"changed": false,

"ping": "pong"

}

[[email protected] ~]#

2、command

在被管理端执行命令

不支持重定向,管道

默认模块

[[email protected] ~]# ansible test -m command -a ‘uptime‘

192.168.87.102 | SUCCESS | rc=0 >>

19:02:25 up  1:02,  3 users,  load average: 0.00, 0.00, 0.00

[[email protected] ~]# ansible test -m command -a ‘date‘

192.168.87.102 | SUCCESS | rc=0 >>

Fri Dec  2 19:02:43 CST 2016

[[email protected] ~]# ansible test -m command -a ‘touch /tmp/aa.txt‘

192.168.87.102 | SUCCESS | rc=0 >>

[[email protected] ~]# ansible test -m command -a ‘ls /tmp‘

192.168.87.102 | SUCCESS | rc=0 >>

aa.txt

ansible_Rp0Uws

yum.log

[[email protected] ~]# ansible test -a "ls /tmp"

192.168.87.102 | SUCCESS | rc=0 >>

aa.txt

ansible_SaISP7

yum.log

参数:

chdir=<Directory>

[[email protected] ~]# ansible test -m command -a "chdir=/tmp ls ./"

192.168.87.102 | SUCCESS | rc=0 >>

aa.txt

ansible_zYCyTU

yum.log

[[email protected] ~]#

3、shell

在被管理端执行命令

支持重定向,管道

[ro[email protected] ~]# ansible test -m shell -a ‘echo "hello ansible" > /tmp/bb.txt‘

192.168.87.102 | SUCCESS | rc=0 >>

[[email protected] ~]# ansible test -m shell -a "ls /tmp"

192.168.87.102 | SUCCESS | rc=0 >>

aa.txt

ansible_D4YLv4

bb.txt

yum.log

[[email protected] ~]#

参数:

chdir=<Directory>

[[email protected] ~]# ansible test -m shell -a "chdir=/tmp ls ./"

192.168.87.102 | SUCCESS | rc=0 >>

aa.txt

ansible_0umV5w

bb.txt

yum.log

4.copy模块

拷贝ansible管理端的文件到远程主机的指定位置

常见参数有:

dest=    指明拷贝文件的目标目录位置,使用绝对路径,如果源是目录,则目标也要是目录,如果目标文件已存在,会覆盖原有内容

src=\‘#\‘"   指明本地路径下的某个文件,可以使用相对路径和绝对路径,支持直接指定目录,如果源是目录,则目标也要是目录

mode=    指明复制时,目标文件的权限

owner=   指明复制时,目标文件的属主

group=   指明复制时,目标文件的属组

content= 指明复制到目标主机上的内容,不能与src一起使用,相当于复制content指明的数据,到目标文件中

[[email protected] ~]# ansible test -m copy -a "src=/etc/hosts dest=/tmp"

192.168.87.102 | SUCCESS => {

"changed": true,

"checksum": "7335999eb54c15c67566186bdfc46f64e0d5a1aa",

"dest": "/tmp/hosts",

"gid": 0,

"group": "root",

"md5sum": "54fb6627dbaa37721048e4549db3224d",

"mode": "0644",

"owner": "root",

"size": 158,

"src": "/root/.ansible/tmp/ansible-tmp-1480678980.74-146396715953485/source",

"state": "file",

"uid": 0

}

[[email protected] ~]# ansible test -m copy -a "src=/etc/passwd dest=/tmp mode=600 owner=nobody group=nobody"

192.168.87.102 | SUCCESS => {

"changed": true,

"checksum": "aa66816b64b79345d60de19b642cc7e62020038f",

"dest": "/tmp/passwd",

"gid": 99,

"group": "nobody",

"md5sum": "d97afe1f271c470a54f1f0763f97ba81",

"mode": "0600",

"owner": "nobody",

"size": 947,

"src": "/root/.ansible/tmp/ansible-tmp-1480679085.29-206165455771870/source",

"state": "file",

"uid": 99

}

[[email protected] ~]# ansible test -m copy -a ‘content="hello linux"  dest=/tmp/cc.txt  mode=600‘

192.168.87.102 | SUCCESS => {

"changed": true,

"checksum": "223ce1d650508823f9dd51d8cb4b527ad3d03ca7",

"dest": "/tmp/cc.txt",

"gid": 0,

"group": "root",

"md5sum": "c5fe55563f6ea61e2b28be7c8a5835c2",

"mode": "0600",

"owner": "root",

"size": 11,

"src": "/root/.ansible/tmp/ansible-tmp-1480679297.69-177631978154126/source",

"state": "file",

"uid": 0

}

5.cron模块

管理计划任务的模块

常见参数有:

minute=  指明计划任务的分钟,支持格式:0-59,*,*/2等,与正常cron任务定义的一样的语法,省略时,默认为*,也就是每分钟都执行

hour=    指明计划任务的小时,支持的语法:0-23,*,*/2等,省略时,默认为*,也就是每小时都执行

day=     指明计划任务的天,支持的语法:1-31,*,*/2等,省略时,默认为*,也就是每天都执行

month=   指明计划任务的月,支持的语法为:1-12,*,*/2等,省略时,默认为*,也就是每月都执行

weekday= 指明计划任务的星期几,支持的语法为:0-6,*等,省略时,默认为*,也就是每星期几都执行

reboot   指明计划任务执行的时间为每次重启之后

name=    给该计划任务取个名称,必须要给明。每个任务的名称不能一样。

job=     执行的任务是什么,当state=present时才有意义

state=present|absent   表示这个任务是创建还是删除,present表示创建,absent表示删除,默认是present

[[email protected] ~]# ansible test -m cron -a ‘minute=*/5 name=Ajob job="/usr/sbin/ntpdate 172.16.8.100 &> /dev/null" state=present‘

192.168.87.102 | SUCCESS => {

"changed": true,

"envs": [],

"jobs": [

"Ajob"

]

}

[[email protected] ~]# ansible test -m shell -a ‘crontab -l‘

192.168.87.102 | SUCCESS | rc=0 >>

#Ansible: Ajob

*/5 * * * * /usr/sbin/ntpdate 172.16.8.100 &> /dev/null

[[email protected] ~]#

[[email protected] ~]# ansible test -m cron -a ‘minute=*/5 name=Ajob job="/usr/sbin/ntpdate 172.16.8.100 &> /dev/null" state=absent‘

192.168.87.102 | SUCCESS => {

"changed": true,

"envs": [],

"jobs": []

}

6.fetch模块

从远程主机拉取文件到本地

一般情况下,只会从一个远程节点拉取数据

常见参数有:

dest=  从远程主机上拉取的文件存放在本地的位置,一般只能是目录

src=\‘#\‘" 指明远程主机上要拉取的文件,只能是文件,不能是目录

[[email protected] ~]# ansible test -m fetch -a ‘src=/etc/passwd dest=/tmp‘

192.168.87.102 | SUCCESS => {

"changed": true,

"checksum": "974b44c114ecbd71bdee11e09a9bc14c9b0395bd",

"dest": "/tmp/192.168.87.102/etc/passwd",

"md5sum": "01d72332a8d9737631212995fe1494f4",

"remote_checksum": "974b44c114ecbd71bdee11e09a9bc14c9b0395bd",

"remote_md5sum": null

}

7.file模块

用于设定远程主机上的文件属性

常见参数有:

path=   指明对哪个文件修改其属性

src=\‘#\‘" 指明path=指明的文件是软链接文件,其对应的源文件是谁,必须要在state=link时才有用

state=directory|link|absent   表示创建的文件是目录还是软链接

owner=   指明文件的属主

group=   指明文件的属组

mode=   指明文件的权限

创建软链接的用法:

src=\‘#\‘"  state=link

修改文件属性的用法:

path=  owner=  mode=  group=

创建目录的用法:

path=  state=directory

删除文件:

path= state=absent

创建软连接

[[email protected] ~]# ansible test -m file -a ‘src=/etc/passwd path=/tmp/passwd.link state=link‘

192.168.87.102 | SUCCESS => {

"changed": true,

"dest": "/tmp/passwd.link",

"gid": 0,

"group": "root",

"mode": "0777",

"owner": "root",

"size": 11,

"src": "/etc/passwd",

"state": "link",

"uid": 0

}

删除文件

[[email protected] ~]# ansible test -m file -a ‘path=/tmp/cc.txt state=absent‘

192.168.87.102 | SUCCESS => {

"changed": true,

"path": "/tmp/cc.txt",

"state": "absent"

}

修改文件属性

[[email protected] ~]# ansible test -m file -a ‘path=/tmp/bb.txt mode=700 owner=root group=nobody‘

192.168.87.102 | SUCCESS => {

"changed": true,

"gid": 99,

"group": "nobody",

"mode": "0700",

"owner": "root",

"path": "/tmp/bb.txt",

"size": 14,

"state": "file",

"uid": 0

}

[[email protected] ~]# ansible test -m shell -a ‘ls -l /tmp/bb.txt‘

192.168.87.102 | SUCCESS | rc=0 >>

-rwx------ 1 root nobody 14 Dec  2  2016 /tmp/bb.txt

[[email protected] ~]#

创建目录

[[email protected] ~]# ansible test -m file -a ‘path=/tmp/bj state=directory‘

192.168.87.102 | SUCCESS => {

"changed": true,

"gid": 0,

"group": "root",

"mode": "0755",

"owner": "root",

"path": "/tmp/bj",

"size": 4096,

"state": "directory",

"uid": 0

}

删除目录

[[email protected] ~]# ansible test -m file -a ‘path=/tmp/bj state=absent‘

192.168.87.102 | SUCCESS => {

"changed": true,

"path": "/tmp/bj",

"state": "absent"

}

[[email protected] ~]# ansible test -m shell -a ‘ls -l /tmp‘

192.168.87.102 | SUCCESS | rc=0 >>

total 16

-rw-r--r-- 1 root   root      0 Dec  2  2016 aa.txt

drwx------ 2 root   root   4096 Dec  2 13:41 ansible_twMJYb

-rwx------ 1 root   nobody   14 Dec  2  2016 bb.txt

-rw-r--r-- 1 root   root    158 Dec  2  2016 hosts

-rw------- 1 nobody nobody  947 Dec  2  2016 passwd

lrwxrwxrwx 1 root   root     11 Dec  2 13:35 passwd.link -> /etc/passwd

-rw------- 1 root   root      0 Dec  2 00:58 yum.log

[[email protected] ~]#

8.hostname模块

管理远程主机上的主机名

常用参数有

name=  指明主机名

[[email protected] ~]# ansible test -m shell -a ‘hostname‘

192.168.87.102 | SUCCESS | rc=0 >>

node1.ansible.com

[[email protected] ~]# ansible test -m hostname -a ‘name=node2.ansible.com‘

192.168.87.102 | SUCCESS => {

"ansible_facts": {

"ansible_domain": "ansible.com",

"ansible_fqdn": "node2.ansible.com",

"ansible_hostname": "node2",

"ansible_nodename": "node2.ansible.com"

},

"changed": true,

"name": "node2.ansible.com"

}

[[email protected] ~]#

9.yum模块

基于yum机制,对远程主机管理程序包

常用参数有:

name=   指明程序包的名称,可以带上版本号,不指明版本,就是默认最新版本

name=httpd

name=httpd-2.2.15

state=present|lastest|absent   指明对程序包执行的操作,present表示安装程序包,latest表示安装最新版本的程序包,absent表示卸载程序包

disablerepo=     在用yum安装时,临时禁用某个仓库,仓库的ID

enablerepo=     在用yum安装时,临时启用某个仓库,仓库的ID

conf_file=       指明yum运行时采用哪个配置文件,而不是使用默认的配置文件

disable_gpg_check=yes|no   是否启用gpg-check

卸载软件包:

[[email protected] ~]# ansible test -m yum -a ‘name=httpd state=absent‘

[[email protected] ~]# ansible test -m shell -a ‘rpm -q httpd‘

安装软件包:

[[email protected] ~]# ansible test -m yum -a ‘name=httpd state=present‘

10、service模块

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

常见参数有:

name=                             被管理的服务名称(/etc/init.d)

state=started|stopped|restarted   表示启动或关闭或重启

enabled=yes|no                    表示要不要设定该服务开机自启动

runlevel=                         如果设定了enabled开机自动启动,则要定义在哪些运行级别下自动启动

[[email protected] ~]# ansible test -m service -a ‘name=nginx state=started‘

192.168.87.102 | SUCCESS => {

"changed": true,

"name": "nginx",

"state": "started"

}

[[email protected] ~]# ansible test -m shell -a ‘service nginx status‘

192.168.87.102 | SUCCESS | rc=0 >>

nginx (pid  4054) is running...

[[email protected] ~]#

[[email protected] ~]# ansible test -m service -a ‘name=nginx state=stopped‘

192.168.87.102 | SUCCESS => {

"changed": true,

"name": "nginx",

"state": "stopped"

}

[[email protected] ~]# ansible test -m shell -a ‘service nginx status‘

192.168.87.102 | FAILED | rc=3 >>

nginx is stopped

[[email protected] ~]# ansible test -m service -a ‘name=nginx state=started enabled=yes runlevel=2345‘

192.168.87.102 | SUCCESS => {

"changed": true,

"enabled": true,

"name": "nginx",

"state": "started"

}

[[email protected] ~]# ansible test -m shell -a ‘chkconfig --list nginx‘

192.168.87.102 | SUCCESS | rc=0 >>

nginx           0:off 1:off 2:on 3:on 4:on 5:on 6:off

[[email protected] ~]#

11. uri模块

如果远端是web服务器,可以利用ansible直接请求某个网页

常见参数有:

url=       指明请求的url的路径,如:http://10.1.32.68/test.jpg

user=      如果请求的url需要认证,则认证的用户名是什么

password=  如果请求的url需要认证,则认证的密码是什么

method=    指明请求的方法,如GET、POST, PUT, DELETE, HEAD

[[email protected] ~]# ansible test -m uri -a ‘url=http://192.168.87.102/index.html‘

192.168.87.102 | SUCCESS => {

"accept_ranges": "bytes",

"changed": false,

"connection": "close",

"content_length": "612",

"content_type": "text/html",

"date": "Fri, 02 Dec 2016 06:31:58 GMT",

"etag": "\"571f8501-264\"",

"last_modified": "Tue, 26 Apr 2016 15:10:57 GMT",

"msg": "OK (612 bytes)",

"redirected": false,

"server": "nginx/1.10.0",

"status": 200,

"url": "http://192.168.87.102/index.html"

}

[[email protected] ~]#

12.group模块

用来添加或删除远端主机的用户组

常见参数有:

name=                  被管理的组名

state=present|absent   是添加还是删除,不指名默认为添加

gid=                   指明GID

system=yes|no          是否为系统组

[[email protected] ~]# ansible test -m group -a ‘name=hr gid=2000 state=present‘

192.168.87.102 | SUCCESS => {

"changed": true,

"gid": 2000,

"name": "hr",

"state": "present",

"system": false

}

[[email protected] ~]# ansible test -m shell -a ‘tail -1 /etc/group‘

192.168.87.102 | SUCCESS | rc=0 >>

hr:x:2000:

13.user模块

管理远程主机上的用户的账号

常见参数有:

name=   指明要管理的账号名称

state=present|absent   指明是创建账号还是删除账号,present表示创建,absent表示删除

system=yes|no   指明是否为系统账号

uid=   指明用户UID

group=   指明用户的基本组

groups=   指明用户的附加组

shell=   指明默认的shell

home=   指明用户的家目录

move_home=yes|no   当home设定了家目录,如果要创建的家目录已存在,是否将已存在的家目录进行移动

password=   指明用户的密码,最好使用加密好的字符串

comment=   指明用户的注释信息

remove=yes|no   当state=absent时,也就是删除用户时,是否要删除用户的而家目录

[[email protected] ~]# ansible test -m user -a ‘name=martin group=hr groups=shichang uid=500 shell=/bin/bash home=/home/martin comment="martin user"‘

192.168.87.102 | SUCCESS => {

"changed": true,

"comment": "martin user",

"createhome": true,

"group": 2000,

"groups": "shichang",

"home": "/home/martin",

"name": "martin",

"shell": "/bin/bash",

"state": "present",

"system": false,

"uid": 500

}

[[email protected] ~]# ansible test -m shell -a ‘grep "martin:" /etc/passwd‘

192.168.87.102 | SUCCESS | rc=0 >>

martin:x:500:2000:martin user:/home/martin:/bin/bash

[[email protected] ~]# ansible test -m user -a ‘name=martin state=absent remove=yes‘

192.168.87.102 | SUCCESS => {

"changed": true,

"force": false,

"name": "martin",

"remove": true,

"state": "absent"

}

14.script模块

将管理端的某个脚本,移动到远端主机(不需要指明传递到远端主机的哪个路径下,系统会自动移动,然后执行),

一般是自动移动到远端主机的/root/.ansible/tmp目录下,然后自动给予其权限,然后再开个子shell然后运行脚本,运行完成后删除脚本

测试脚本

[[email protected] ~]# ansible test -m script -a ‘/root/1.sh‘

192.168.87.102 | SUCCESS => {

"changed": true,

"rc": 0,

"stderr": "",

"stdout": "",

"stdout_lines": []

}

[[email protected] ~]#

练习:

在远程主机上安装httpd, 并配置httpd监听在8000端口,

15.setup模块

可收集远程主机的facts变量的信息,相当于收集了目标主机的相关信息(如内核版本、操作系统信息、cpu、…),保存在ansible的内置变量中,之后我们有需要用到时,直接调用变量即可

[[email protected] ~]# ansible test -m setup

192.168.87.102 | SUCCESS => {

"ansible_facts": {

"ansible_all_ipv4_addresses": [

"192.168.87.102"

],

"ansible_all_ipv6_addresses": [

"fe80::20c:29ff:fe0c:5ab9"

],

"ansible_architecture": "x86_64",

"ansible_bios_date": "05/20/2014",

"ansible_bios_version": "6.00",

时间: 2024-08-08 21:56:27

Linux Ansible详解的相关文章

自动化运维工具——ansible详解案例分享

自动化运维工具--ansible详解案例分享(一)目录ansible 简介ansible 是什么?ansible 特点ansible 架构图ansible 任务执行ansible 任务执行模式ansible 执行流程ansible 命令执行过程ansible 配置详解ansible 安装方式使用 pip(python的包管理模块)安装使用 yum 安装ansible 程序结构ansible配置文件查找顺序ansible配置文件ansuble主机清单ansible 常用命令ansible 命令集a

Linux 目录详解 树状目录结构图

1.树状目录结构图 2./目录 目录 描述 / 第一层次结构的根.整个文件系统层次结构的根目录. /bin/ 需要在单用户模式可用的必要命令(可执行文件):面向所有用户,例如:cat.ls.cp,和/usr/bin类似. /boot/ 引导程序文件,例如:kernel.initrd:时常是一个单独的分区[6] /dev/ 必要设备, 例如:, /dev/null. /etc/ 特定主机,系统范围内的配置文件. 关于这个名称目前有争议.在贝尔实验室关于UNIX实现文档的早期版本中,/etc 被称为

Linux信号详解

Linux信号详解 一 信号的种类 可靠信号与不可靠信号, 实时信号与非实时信号 可靠信号就是实时信号, 那些从UNIX系统继承过来的信号都是非可靠信号, 表现在信号 不支持排队,信号可能会丢失, 比如发送多次相同的信号, 进程只能收到一次. 信号值小于 SIGRTMIN的都是非可靠信号. 非可靠信号就是非实时信号, 后来, Linux改进了信号机制, 增加了32种新的信号, 这些信 号都是可靠信号, 表现在信号支持排队, 不会丢失, 发多少次, 就可以收到多少次. 信号值 位于 [SIGRTM

linux awk详解与应用

文章来自于本人个人博客: linux awk详解与应用 1.awk awk是一个强大的文本分析工具,它可以通过分析文本来生成一个数据报告.它的原理就是读取每行的输入,然后按照分隔符切分(默认是空格),再进行定制计算. awk '{print $1}' /etc/passwd   #打印出passwd文件的所有行的第一列 这是awk的基础语法,在awk中$n代表列数,即$1--第一列,$2---第二列....,但是$0代表整行 接下来我们按照指定的分隔符打印数据: awk -F ':' '{pri

Gentoo Linux安装详解--根据官方WiKi整理

1. 前期准备 远程登录: 开启ssh服务: /etc/init.d/sshd start 设置密码: passwd 以便使用putty.ssh client远程登录上传stage等(有时在线下载很慢,而局域网上传很快) 准备磁盘: 分区: fdisk /dev/sda /dev/sda1 : /boot 100M(32-100M) 设启动笔记-a/dev/sda2 : / 20G/dev/sda3 : /home 20G/dev/sda5 : /swap 1G (内存< 512 MB,分区分配

linux命令详解

一.cat主要有三大功能: 1.一次显示整个文件.$ cat filename2.从键盘创建一个文件.$ cat > filename (只能创建新文件,不能编辑已有文件)3.将几个文件合并为一个文件: $cat file1 file2 > file 参数:-n 或 --number 由 1 开始对所有输出的行数编号-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行-v

PXE的概述及Linux使用详解

PXE的概述及使用详解 现在企业采购的很多计算机都是没光驱的,怎么安装系统呢?另外,如何能快速大规模安装Linux服务器操作系统呢,有什么好办法吗? 答案是有的,那就是本文要说的:PXE PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial filet

Gentoo Linux安装详解

1. 前期准备 远程登录: 开启ssh服务: /etc/init.d/sshd start 设置密码: passwd 以便使用putty.ssh client远程登录上传stage等(有时在线下载很慢,而局域网上传很快) 准备磁盘: 分区: fdisk /dev/sda /dev/sda1 : /boot 100M(32-100M) 设启动笔记-a/dev/sda2 : / 20G/dev/sda3 : /home 20G/dev/sda5 : /swap 1G (内存< 512 MB,分区分配

Linux指令详解useradd groupadd passwd chpasswd chage 密码修改

创建用户.设置密码.修改用户.删除用户: useradd testuser 创建用户testuser passwd testuser 给创建的用户testuser设置密码 说明:新创建的用户会在/home下创建一个用户目录testuser usermod --help 修改用户这个命令的相关参数 userdel testuser 删除用户testuser rm -rf testuser 删除用户testuser所在目录 上面的几个命令只有root账号才可以使用,如果你不知道自己的系统上面的命令在