当前位置: 首页 > 科技观察

如何在UbuntuChef上安装配置管理系统

时间:2023-03-22 13:44:36 科技观察

Chef是一个配置管理和自动化工具,供IT专业人员配置和管理您的基础设施(设备),无论是在本地还是在云端。它可用于加速应用程序部署并协调多个系统管理员和开发人员的工作,包括成百上千个支持大型客户端的服务器和程序。Chef最适合将基础设施转化为代码。掌握Chef后,您可以获得一流的网络IT支持,自动管理您的云基础设施或最终用户。以下是我们将在本文中设置和配置的Chef的主要组件。安装Chef的要求和版本我们将在以下基本环境中搭建Chef配置管理系统。Chef服务器安装和配置Chef服务器是存储配置和其他与工作站交互的配置数据的核心组件。我们从他们的官方网站https://www.chef.io下载最新的安装文件。我使用下面的命令来下载并安装它。(1)下载Chef服务器root@ubuntu-14-chef:/tmp#wgethttps://web-dl.packagecloud.io/chef/stable/packages/ubuntu/trusty/chef-server-core_12.1.0-1_amd64。deb(2)安装Chef服务器root@ubuntu-14-chef:/tmp#dpkg-ichef-server-core_12.1.0-1_amd64.deb(3)重新配置Chef服务器现在运行以下命令启动所有Chef服务器服务,此步骤可能需要一些时间,因为它需要许多不同的服务一起工作才能形成一个正常运行的系统。root@ubuntu-14-chef:/tmp#chef-server-ctlreconfigureChef服务器启动命令'chef-server-ctlreconfigure'需要运行两次,所以安装后你会看到这样的输出。Chef客户端完成,342/350资源在113.71139964秒内更新opscodeReconfigured!(4)重启系统安装完成后,重启系统使系统发挥最佳效果,否则我们在创建用户时可能会看到如下SSL连接错误。ERROR:Errno::ECONNRESET:Connectionresetbypeer-SSL_connect(5)创建新管理员运行以下命令创建新管理员帐户及其配置。创建过程中会自动生成用户的RSA私钥,需要妥善保存。--file选项会将RSA私钥保存到指定路径。root@ubuntu-14-chef:/tmp#chef-server-ctluser-createkashikashikashikashif.fareedi@gmail.comkashi123--filename/root/kashi.pemChef服务器管理设置ChefManage是企业级的Chef用户的管理控制台,提供可视化Web用户界面来管理节点、包、规则、环境、说明书和基于角色的访问控制(RBAC)。(1)下载ChefManage从官网复制链接,下载ChefManage安装包。root@ubuntu-14-chef:~#wgethttps://web-dl.packagecloud.io/chef/stable/packages/ubuntu/trusty/opscode-manage_1.17.0-1_amd64.deb(2)安装ChefManage使用以下命令将其安装在root的主目录中。root@ubuntu-14-chef:~#chef-server-ctlinstallopscode-manage--path/root(3)重启ChefManage和服务器安装完成后,我们需要运行以下命令重启ChefManage和服务器。root@ubuntu-14-chef:~#opscode-manage-ctlreconfigureroot@ubuntu-14-chef:~#chef-server-ctlreconfigure#p#ChefManagewebconsole我们可以使用localhost或其域名访问网页控制台,并使用创建的管理员登录。chefamanage(1)ChefManage创建新组织您可能会被要求创建新组织,或接受来自其他组织的邀请。使用缩写和全名创建一个新组织,如下所示。CreateOrg(2)使用命令行创建一个新的组织我们也可以运行下面的命令来创建一个新的组织。root@ubuntu-14-chef:~#chef-server-ctlorg-createlinuxLinoxideLinux组织。--association_userkashi--filenamelinux.pemsetupworkstation我们已经完成了chefserver的安装,现在我们可以开始创建任意recipes(基本配置元素),cookbooks(基本配置集),attributes(节点属性),以及其他一些修改。(1)在Chef服务器上新建用户和组织为了搭建工作站,我们需要使用命令行新建用户和组织。root@ubuntu-14-chef:~#chef-server-ctluser-createblogerBlogerKashifbloger.kashif@gmail.combloger123--filenamebloger.pemroot@ubuntu-14-chef:~#chef-server-ctlorg-createblogsLinoxideBlogsInc.--association_userbloger--filenameblogs.pem(2)下载WorkstationStarterKit下载StarterKit并将其保存在工作站的Web控制台中,它用于与服务器一起工作。入门套件(3)下载套件后,点击“继续”入门套件ChefDevelopmentKitforWorkstationSetupChefDevelopmentKit是一个软件包,包含开发Chef所需的所有工具。它将Chef开发的工具与Chef客户端捆绑在一起。(1)下载ChefDK我们可以从其官网链接下载开发包,选择操作系统下载Chef开发包。ChefDK复制链接并使用wget下载root@ubuntu-15-WKS:~#wgethttps://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk_0.6.2-1_amd64.deb#p#(2)Chef开发包安装使用dpkg命令安装开发包root@ubuntu-15-WKS:~#dpkg-ichefdk_0.6.2-1_amd64.deb(3)ChefDK验证使用如下命令验证说明客户端已经正确安装。root@ubuntu-15-WKS:~#chefverifyRunning验证组件'berkshelf'运行验证组件'test-kitchen'运行验证组件'chef-client'运行验证组件'chef-dk'运行验证组件'chefspec'正在运行验证组件'rubocop'正在运行验证组件'fauxhai'正在运行验证组件'knife-spork'正在运行验证组件'kitchen-vagrant'正在运行验证组件'packageinstallation'正在运行验证组件'openssl'。................------------------------------------------组件'rubocop'验证成功。组件'knife-spork'验证成功。组件'openssl'验证成功。组件'berkshelf'验证成功。组件'chef-dk'验证成功。组件'fauxhai'的验证成功。组件'test-kitchen'的验证成功。验证of组件“kitchen-vagrant”成功。组件“chef-client”验证成功。组件“chefspec”验证成功。组件“packageinstallation”验证成功。(4)要连接到Chef服务器,我们将创建~/.chef目录,将两个用户和组织的pem文件从chef服务器复制到这个目录root@ubuntu-14-chef:~#scpbloger.pemblogs.pemkashi.pemlinux.pemroot@172.25.10.172:/.chef/root@172.25.10.172的密码:bloger.pem100%16741.6KB/s00:00blogs.pem100%16741.6KB/s00:00kashi.pem100%16781.6KB/s00:00linux.pem100%16781.6KB/s00:00(5)编辑配置以管理Chef环境**现在使用以下内容创建“~/.chef/knife.rb”。root@ubuntu-15-WKS:/.chef#vimknife.rbcurrent_dir=File.dirname(__FILE__)log_level:infolog_locationSTDOUTnode_name"kashi"client_key"#{current_dir}/kashi.pem"validation_client_name"kashi-linux"validation_key"#{current_dir}/linux.pem"chef_server_url"https://172.25.10.173/organizations/linux"cache_type'BasicFile'cache_options(:path=>"#{ENV['HOME']}/.chef/checksums")cookbook_path["#{current_dir}/../cookbooks"]创建knife.rb中指定的“~/cookbooks”文件夹。root@ubuntu-15-WKS:/#mkdircookbooks(6)测试Knife配置运行“knife用户列表”和“knife客户端列表”以验证knife是否正常工作。root@ubuntu-15-WKS:/.chef#knifeuserlist第一次运行可能会看到如下错误,这是因为工作站上没有chef服务器的SSL证书。错误:连接到主机的SSL验证失败:172.25.10.173-SSL_connectreturned=1errno=0state=SSLv3readservercertificateB:certificateverifyfailedERROR:Couldnotestablishasecureconnectiontotheserver.Use`knifesslublescheckho`to您的SSL配置。如果您的Chef服务器使用自签名证书,您可以使用`knifesslfetch`让knife信任服务器的证书。解决上面命令的错误,运行如下命令获取ssl证书,重启runknifeuserandclientlist,现在应该可以了。root@ubuntu-15-WKS:/.chef#knifesslfetch警告:来自172.25.10.173的证书将被提取并放置在您的trusted_certdirectory(/.chef/trusted_certs)中。knife无法验证这些证书是否有效。下载时应验证这些证书的真实性。在/.chef/trusted_certs/ubuntu-14-chef_test_com.crt下添加ubuntu-14-chef.test.com的证书。上面的命令获取到ssl证书后,再运行下面的命令。root@ubuntu-15-WKS:/.chef#knifeclientlistkashi-linux配置与Chef服务器节点交互的新节点是执行所有基础设施自动化的Chef客户端。因此,在配置完chef-server和knifeworkstation之后,通过配置一个与chef-server交互的新节点,为我们的chef环境添加一个新的服务器。我们使用以下命令添加一个新节点以与Chef服务器一起工作。root@ubuntu-15-WKS:~#knifebootstrap172.25.10.170--ssh-userroot--ssh-passwordkashi123--node-namemydns使用/.chef/linux.pem上的验证密钥进行旧式注册。..DeleteyourvalidationkeyinordertouseyourusercredentialsinsteadConnectingto172.25.10.170172.25.10.170InstallingChefClient...172.25.10.170--2015-07-0422:21:16--https://www.opscode.com/chef/install.sh172.25.10.170正在解析www.opscode.com(www.opscode.com)...184.106.28.91172.25.10.170正在连接到www.opscode.com(www.opscode.com)|184.106.28.91|:443...已连接。172.25.10.170已发送HTTP请求,正在等待响应...200OK172.25.10.170长度:18736(18K)[application/x-sh]172.25.10.170保存到:'STDOUT'172.25.10.170100%[====================================>]18,736--.-K/sin0s172.25.10.170172.25.10.1702015-07-0422:21:17(200MB/s)-写入标准输出[18736/18736]172.25.10.170172.25.10.170下载Chef12forUbuntu...172.25.10.170下载https://www.opscode.com/chef/metadata?v=12&prerelease=false&nightlies=false&p=ubuntu&pv=14.04&m=x86_64172.25.10.170到文件/tmp/install.sh.26024/metadata。txt172.25.10.170tryingwget...之后我们可以在knifenodelist下看到新创建的节点,它也会在新节点root@ubuntu-15-WKS下创建一个新的client:~#knifenodelistmydns同理我们只需向上面的knife命令提供ssh凭据,就可以在chef设施上创建多个节点。总结在本文中,我们通过安装和配置设置学习了chef管理工具,并基本了解了它的组成部分。我希望您在学习安装和配置Chef服务器及其工作站和客户端节点时玩得开心。