aws centos root(centos切换root)
大家好,aws centos root相信很多的网友都不是很明白,包括centos切换root也是一样,不过没有关系,接下来就来为大家分享关于aws centos root和centos切换root的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
Linux如何使用backup
只有在电脑出了问题后才理解备份的重要的,在系统操作中,及时备份是很有必要的,backup-manager是一个命令行备份工具,下面小编就给大家介绍下Linux如何使用backup-manager备份系统。
是什么让备份管理器在众多的备份工具或备份策略中脱颖而出呢?让我来简单介绍一些它的与众不同的特性吧。
简单的设计与管理:配置文件易于读懂和编辑,即便是初学者也很容易上手。
一劳永逸:它在配置好后就可以通过cron周期性运作。
支持多种协议远程备份:无缝整合多种传输协议、应用和云后端(如,FTP,SCP,SSH-GPG,rsync,AWS S3等等)来传输生成的归档包到一组远程主机。
支持数据库备份:包括支持开箱即用备份MySQL/MariaDB和PostgreSQL数据库。
支持加密:备份过程中支持基于GPG文件的加密。
在Linux上安装备份管理器
备份管理器的安装是快速而无痛的,因为它就包含在大多数Linux发行版的基础软件库中。
Debian,Ubuntu及其衍生版
# aptitude install backup-manager
在基于Debian的系统中安装时,会提示你输入要存放备份归档文件的目录。如果选择的目录不存在,那么当你首次运行备份管理器时它会自动创建。
选择OK并按回车键。
在下一步中,会询问你要备份的所有目录(用空格分隔)。建议,但不是严格要求,列出同一父目录中的几个子目录,而不要仅仅输入父目录。
你可以跳过该步骤并在以后对配置文件中BM_TARBALL_DIRECTORIESb变量进行设置。否则的话,就请尽可能多地添加你想要的目录,然后选择OK:
Fedora或CentOS/RHEL
# yum install backup-manager
在CentOS/RHEL上,在运行以上yum命令前,你将需要先启用EPEL仓库。
配置备份管理器
备份管理器的主配置文件是/etc/backup-manager.conf。该文件被划分为几个章节,里面定义了备份方法和相关的变量(或“键值”),这些配置让备份管理器成为一个多样化的工具,可以广泛地应付各种状况。
出于演示目的,我们将考虑以下环境:
每周对/etc,/home以及/var/log目录进行一次完整备份(我们将在下面通过cron设置备份的频率)。
通过SSH传输.tar.gz备份归档文件到两台不同主机dev1和dev3上指定的目标目录。
通过SSH备份本地MySQL数据库到相同目标主机。
用你喜爱的文本编辑器打开/etc/backup-manager.conf文件,并编辑以下变量。如果你愿意,你大可不必理会那些#开头的行。在本文中,它只是用作说明的注释:
# Specify the backup method(s) that will be used.
# tarball: takes a list of directories and builds the corresponding tarballs.
# mysql: archives MySQL databases using mysqldump. To restore the database, you# need to use the same tool manually.
export BM_ARCHIVE_METHOD=“tarball mysql”
# Where to store the backups.
export BM_REPOSITORY_ROOT=“/var/archives”
# The following directive indicates backup-manager to name
# the generated files after the directory that was backed up.
export BM_TARBALL_NAMEFORMAT=“long”
# Define the compression type for the generated files.
export BM_TARBALL_FILETYPE=“tar.gz”
# List the directories that you want to backup.
export BM_TARBALL_DIRECTORIES=“/etc/home/var/log”
# Exclude some subdirectories or file extensions.
export BM_TARBALL_BLACKLIST=“/var/log/myotherapp.log*.mp3*.mp4”
# List the database(s) that you want to backup, separated by spaces.
export BM_MYSQL_DATABASES=“mysql mybase wordpress dotclear phpbb2”
# MySQL username.
export BM_MYSQL_ADMINLOGIN=“root”
# MySQL password for username.
export BM_MYSQL_ADMINPASS=“mypassword”
# Add support for DROP statements(optional)。
export BM_MYSQL_SAFEDUMPS=“true”
# The hostname or IP address where the database(s) reside.
export BM_MYSQL_HOST=“localhost”
# Port where MySQL server is listening.
export BM_MYSQL_PORT=“3306”
# Compression type(optional)。
export BM_MYSQL_FILETYPE=“gzip”
# Do not archive remote hosts, but only localhost.
BM_TARBALL_OVER_SSH=“false”
# User account for SSH upload.
export BM_UPLOAD_SSH_USER=“root”
# Absolute path of the user‘s private key for passwordless SSH login.
export BM_UPLOAD_SSH_KEY=“/root/.ssh/id_rsa”
# Remote hosts(make sure you have exported your public key to them):
export BM_UPLOAD_SSH_HOSTS=“dev1 dev3”
# Remote destination for uploading backups. If it doesn’t exist,
# this directory will be created automatically the first time
# backup-manager runs.
export BM_UPLOAD_SSH_DESTINATION=“/var/archives/backups/$HOSTNAME”
运行备份管理器
要手动运行备份管理器,请输入以下命令。你也可以选择添加‘-v’标识以便一步一步详细检查运行过程。
# backup-manager
BM_TARBALL_DIRECTORIES列出的目录将作为tarball备份到BM_REPOSITORY_ROOT目录,然后通过SSH传输到BM_UPLOAD_SSH_DESTINATION指定的主机dev1和dev3。
正如你在上面图片中看到的那样,备份管理器在运行的时候创建了一个名为/root/.back-manager_my.cnf的文件,MySQL密码通过BM_MYSQL_ADMINPASS指定。那样,mysqldump可以验证到MySQL服务器,而不必在命令行以明文格式接受密码,那样会有安全风险。
通过cron运行备份管理器
一旦决定哪一天是进行每周备份的最佳日子(最佳时间),你可以让cron来为你运行备份管理器。
打开root的crontab文件(注意,你必须以root登录):
# crontab-e
假定你想要在星期天的上午5:15分运行备份管理器,那么就添加下面这行。
1505**0/usr/sbin/backup-manager》/dev/null2》&1
小结
上面就是Linux使用backup-manager备份系统的方法介绍了,相对于其他的备份工具,backup-manager更加的简单易用,是系统备份的好帮手。
如何免费下载和安装 RHEL 9系统
欢迎来到RHEL 9的世界,这款备受瞩目的企业级Linux发行版于2022年5月18日正式发布,标志着自2019年IBM收购Red Hat以来的首个重大进展,同时也成为CentOS Stream的上游。让我们一起探索如何免费下载并安装这款革新性的系统。
关键亮点
IBM收购后的首个大作,延续了RHEL的传统与创新。
搭载Kernel 5.14,软件升级至Python 3.9和Node.js 16,安全性能提升显著,如OpenSSH禁止root密码登录和优化的SELinux策略。
Web控制台的监控功能增强,实时更新内核补丁,同时支持在AWS和GCP上为定制环境构建镜像。
特别利好开发者,Red Hat Developers订阅免费,全面解锁RHEL及Red Hat系列产品的使用权。
欲获取RHEL 9,只需通过Red Hat账号登录开发者门户,开始您的下载之旅。
ISO镜像(8GB)以及详尽的安装指南,无论是通过USB还是网络连接,都一应俱全。
安装步骤详解
启动安装后,屏幕上会显示RHEL 9的欢迎界面,无需手动操作,只需耐心等待安装流程。图形化向导会引导您选择安装语言,然后继续前进。在此阶段,您将配置硬盘分区,重要的是要明确安装目标,设置根账户和常规用户账户,允许自动或手动划分硬盘空间。
特别推荐创建LVM分区,包括boot、home、root和swap分区,确保每个部分都安排得井井有条。
设置引导分区,确认所有更改,并开始配置用户设置,别忘了设置Root密码和为常规用户设置账户。
安装过程正式开始,软件包将自动下载并安装。重启后,系统会提示您选择RHEL 9作为启动选项。登录后,您可以根据喜好选择一个桌面环境,无论是简洁的命令行界面还是丰富的图形用户界面。
最后一步:注册与享受
为了获得RHEL 9的所有优势,别忘了注册您的RHEL订阅。这将为您的系统提供持续的支持和服务,助您在企业级Linux环境中如鱼得水。至此,您的RHEL 9安装之旅已接近尾声,祝您安装顺利,期待您在RHEL 9的世界里探索无限可能。
如何借助Salt Cloud配置AWS EC2实例
SaltStack项目于2011年启动。我们在2013年8月首次刊文介绍SaltStack;就在同一年,在拥有最多“关闭的问题”(issues closed)和“合并拉拽请求”(merged pull request)类别的所有公共软件库当中,GitHub的Octoverse在saltstack/salt软件库中名列第三。
2013年11月8日,Salt Cloud被并入到主Salt软件库,成为SaltStack 2014.1.0 Hydrogen版本的一部分。
Salt Cloud这款工具可以用来配置和管理得到支持的云服务提供商内部和之间的云服务器。比如说,系统管理员通过使用Salt Cloud配置的单个节点,就可以配置位于亚马逊网络服务(AWS)美国西海岸地区的五台新的Web服务器,配置位于Rackspace伦敦地区的三台新的应用服务器。
本文介绍了如何借助Salt Cloud配置亚马逊弹性计算云(EC2)实例;文章还介绍了如何使用Salt Cloud的地图(Map)功能,借助单单一个命令,配置几个并行的实例。
不过本文中所用的发行版是CentOS;除了安装方面的一些微小细节外,本文探讨的详细步骤适用于EC2上、可以运行最新版SaltStack的任何发行版。
除了AWS EC2外,SaltStack还支持其他的云服务提供商,比如Digital Ocean、GoGrid、谷歌计算引擎(Google Compute Engine)、OpenStack和Rackspace。功能矩阵列出了一张表,显示了针对每家云服务提供商的支持功能。
来自运行salt-cloud的实例、Salt Cloud命令行工具以及所配置实例的所有交互都通过SSH协议来实现。Salt Cloud不需要Salt Master守护进程。如果你想要使用Salt状态和模块来管理所配置实例,就需要设置Salt Master,这不在本文的探讨范围之内。
安装
salt-cloud命令行工具随作为EPEL一部分的salt-master 2014.1.0 RPM程序包一同发行。它应该可以安装在EC2里面的实例上。
$ yum install salt-master
“SaltStack”团队管理Ubuntu个人软件包存档(PPA),它含有所有最新版本的Ubuntu。Salt还出现在标准的openSUSE 13.1版本中。docs.saltstack.com提供了详尽具体的说明文档,含有说明步骤,介绍了如何针对其他发行版和平台安装Salt。
salt-cloud确实依赖Apache libcloud,这是一种可与30多家云服务提供商兼容的python库。可以使用pip命令,安装稳定版本的apache-libcloud。
$ pip install apache-libcloud
要是没有pip命令,你可能需要先安装python-pip程序包。如果你想把apache-libcloud安装在孤立的Python环境中,首先要检查virtualenv(虚拟环境)。
EC2安全组
salt-cloud配置的每个实例都需要属于至少一个AWS EC2安全组(Security Group),该安全组允许来自端口22/tcp、始发于运行salt-cloud的实例的入站流量。我在之前的一篇文章中已介绍了如何使用awscli工具创建安全组,
$ aws ec2 create-security-group\--group-name MySecurityGroupSaltCloudInstances\--description"The Security Group applied to all salt-cloud instances"$ aws ec2 authorize-security-group-ingress\--group-name MySecurityGroupSaltCloudInstances\--source-group MySecurityGroupSaltCloud\--protocol tcp--port 22
authorize-security-group-ingress命令允许MySecurityGroupSaltCloud安全组里面的任何EC2节点通过端口22/tcp,访问MySecurityGroupSaltCloudInstances里面的其他任何EC2节点。在我的安装环境中,运行salt-cloud的实例属于MySecurityGroupSaltCloud安全组。你需要创建一个安全组,运行salt-cloud的实例将属于该安全组。
EC2密钥对
salt-cloud依赖SSH协议上传和运用salt-bootstrap自动安装脚本。需要针对运行salt-cloud的实例生成SSH公钥和私钥。公钥同样需要上传到AWS EC2,成为密钥对。我在前一篇文章中也介绍了如何实现这一步。
想创建SSH私钥和SSH公钥:
$ ssh-keygen-f/etc/salt/my_salt_cloud_key-t rsa-b 4096$ aws ec2 import-key-pair--key-name my_salt_cloud_key\--public-key-material
Salt Cloud配置文件
Salt Cloud配置文件(Profile)为一组将由salt-cloud配置和管理的salt minion定义了一些基本的配置项。
在下面的/etc/salt/cloud.profiles文件里面,我已创建了一个配置文件,名为base_ec2_private;该配置文件使用我将在接下来定义的my_ec2_ap_southeast_2_private_ips提供商。我需要指定的另外唯一一个选项是minion将运行的那个映像的亚马逊机器映像(AMI) ID。ami-e7138ddd是CentOS.org发行、在AWS ap-southeast-2区域里面可用的CentOS 6.5映像的AMI ID。
base_ec2_private: provider: my_ec2_ap_southeast_2_private_ips image: ami-e7138ddd
Salt Cloud提供商
salt-cloud提供商定义了AWS EC2实例使用的一系列属性。
下面是我用来定义my_ec2_ap_southeast_2_private_ips提供商的/etc/salt/cloud.providers文件。该提供商被我的my base_ec2_private配置文件所使用。
my_ec2_ap_southeast_2_private_ips:
# salt-cloud应连接到的IP地址 ssh_interface: private_ips# AWS登录信息 id:@AWS_ACCESS_KEY_ID@ key:'@AWS_SECRET_ACCESS_KEY@'# SSH密钥 keyname: my_salt_cloud_key private_key:/etc/salt/my_salt_cloud_key# AWS位置 location: ap-southeast-2 availability_zone: ap-southeast-2a# AWS安全组 securitygroup: MySecurityGroupSaltCloudInstances# AWS AMI size: Micro Instance# minion被销毁后,删除AWS根卷 del_root_vol_on_destroy: True#本地用户 ssh_username: root#一旦销毁,就更名 rename_on_destroy: True provider: ec2
我定义了用@符号封装的几个属性,它们需要上传,以适合你的环境。
@AWS_ACCESS_KEY_ID@:AWS Access Key ID属于拥有足够EC2权限以配置新实例的IAM帐户。虽然salt-cloud确实支持AWS身份与访问管理(IAM)角色,但它们只适用于所配置的EC2 minion。静态的AWS访问密钥和秘密密钥仍被salt-cloud用来部署minion。
@AWS_SECRET_ACCESS_KEY@:属于AWS Access Key ID的AWS秘密密钥。
创建第一个salt-cloud minion
首先,你可能需要在SSH代理里面设置SSH密钥。
$ eval `ssh-agent`$ ssh-add/etc/salt/my_salt_cloud_key
下一步,调用传递配置文件名称的salt-cloud,其名称与你在/etc/salt/cloud.profiles里面配置的相一致,最后一个参数是新minion的名称。
$ salt-cloud--profile=base_ec2_private my_first_minion
salt-cloud使用SSH代理获取salt-bootstrap自动安装脚本,该脚本会安全地检测minion发行版,安装salt-minion程序包,如果你已设置好salt-master,还可以预先为salt-master提供minion的密钥。
如果成功,我们可以使用salt-cloud查询实例:
$ salt-cloud--action=show_instance my_first_minion
salt-cloud还支持其他操作,比如查询和设定AWS EC2标记:
$ salt-cloud--action=get_tags my_first_minion$ salt-cloud--action=set_tags my_first_minion environment=devel\ role=webserver
我们可以启用和禁用EC2终止保护(Termination Protection):
$ salt-cloud--action=show_term_protect my_first_minion$ salt-cloud--action=enable_term_protect my_first_minion$ salt-cloud--action=disable_term_protect my_first_minion
我们还可以重启minion:
$ salt-cloud--action=reboot my_first_minion
如果你已设置好了salt-master,应该能够通过salt命令行,运行标准的salt模块:
$ salt my_first_minion cmd.run'/sbin/ip address show'
当然了,如果salt-master状态已设置好,你可以运用state.highstate。
$ salt my_first_minion state.highstate
最后,我们可以使用--destroy选项销毁实例:
$ salt-cloud--destroy my_first_minion
Salt Cloud地图
我们前面已探讨了借助salt-cloud配置单个的EC2实例。现在,我们可以延伸开来,使用Slat Cloud地图(Maps),借助单单一个salt-cloud命令,创建多个实例。
在/etc/salt/cloud.map文件里面,我定义了三台都继承base_ec2_private配置文件的Web服务器。
base_ec2_private:- web1_prod- web2_prod- web3_prod
想配置所有三个实例,我只需要传递--map选项连同地图文件的位置。另外包括--parallel,地图里面的所有实例将同时被配置。
$ salt-cloud--map=/etc/salt/cloud.map--parallel
一旦配置完毕,我们就可以借助salt-cloud,查询地图里面的所有实例。
$ salt-cloud--map=/etc/salt/cloud.map--query
想终止地图里面的所有服务器,我们只要传递--destroy选项。
$ salt-cloud--map=/etc/salt/cloud.map–destroy