Chef 安装教程【系列教程一】

版本均为官方最新稳定版 Chef Server 12.17.33、Chef Manage 2.5.16、Chef Workstation 0.1.137、Chef Client 14.2.0

简介

Chef是一个功能强大的自动化平台,可将基础架构转换为代码。 无论您是在云端,本地还是混合环境中运行,Chef均可自动完成整个网络中基础架构的配置,部署和管理,无论其大小如何。

  • Chef 官网提供
    Chef Diagram
  • Chef架构
  • Chef 架构说明
    • 一个中心服务器(Chef Server)

      • Chef将数据存储在CouchDB数据库里面
      • RabbitMQ和chef-solr等提供搜索的功能
      • Chef还提供了个图形的用户界面(cher-server-webui)
    • 一至多个Workstation(运行knife工具对Chef进行配置)
      • Workstation上有一个pem文件,knift利用它作为认证来和chef-server通过REST API进行通信
      • Workstation将配置(利用Recipe等描述各Client应该如何配置自己)上传到服务器
      • Workstation和中心服务器可以在同一台机器
    • 一至多个Client(Chef Server管理的节点)
      • Client上有一个pem文件,chef-client利用它作为认证来和chef-server通过REST API进行通信
      • 当新加一个Client的时候,需要从中心服务器上拷贝validator.pem到新加的Client
      • 它利用这个pem进行注册得到自己的client.pem进行以后的认证
      • Client连到Chef服务器查看如何配置自己,然后进行自我配置

安装准备

  • 环境说明
服务器 配置 IP 主机名 说明 软件及版本
Centos7.2 2C+/4G+/50G+ 192.168.0.31 chefserver Chef Server chef-server-core-12.17.33-1.el7.x86_64.rpm
chef-manage-2.5.16-1.el7.x86_64.rpm
Centos7.2 2C+/2G+/50G+ 192.168.0.39 chefworkstation Chef Workstation chef-workstation-0.1.137-1.el6.x86_64.rpm
Centos7.2 1C+/1G+/40G+ 192.168.0.40 chefnode Chef Client chef-14.2.0-1.el7.x86_64.rpm
  • 关闭防火墙、SELinux
# 关闭iptables
chkconfig iptables off
# 关闭ipv6防火墙
chkconfig ip6tables off#关闭firewall
systemctl stop firewalld.service
systemctl disable firewalld.service # 关闭SELinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
  • 同步所有机器时间
# 不同步会导致,登录认证无法通过
# root/sudo执行
ntpdate ntp.ubuntu.com  
  • 设置主机名,域名配置
# Server、Workstation、Nodes均要设置hostname、配置hosts
# 设置Chef Server
hostnamectl set-hostname chefserver
# 设置Workstation
hostnamectl set-hostname chefworkstation
# 设置Node
hostnamectl set-hostname chefnode# 配置hosts
vim /etc/hosts
192.168.0.31    chefserver
192.168.0.39    chefworkstation
192.168.0.40    chefnode
  • 下载源文件
# 创建目录
mkdir -p /chef/software
cd /chef/software# Chef Server [最新稳定版12.17.33]
wget https://packages.chef.io/files/stable/chef-server/12.17.33/el/7/chef-server-core-12.17.33-1.el7.x86_64.rpm
# Chef Manage [最新稳定版2.5.16]
wget https://packages.chef.io/files/stable/chef-manage/2.5.16/el/7/chef-manage-2.5.16-1.el7.x86_64.rpm# Chef Workstation [最新稳定版0.1.137]
wget https://packages.chef.io/files/stable/chef-workstation/0.1.137/el/7/chef-workstation-0.1.137-1.el6.x86_64.rpm# Chef Client [最新稳定版14.2.0]
wget https://packages.chef.io/files/stable/chef/14.2.0/el/7/chef-14.2.0-1.el7.x86_64.rpm

Chef Server安装

  • 系统参数调整
#内核参数调整
vi /etc/sysctl.conf
# 物理内存使用90%再使用swap
vm.swappiness = 10
# 1 表示开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1
# 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭
net.ipv4.tcp_tw_recycle = 1
# 定义了系统中每一个端口最大的监听队列的长度, 对于一个经常处理新连接的高负载web服务环境,默认128太低
net.core.somaxconn = 2048
# 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间
net.ipv4.tcp_fin_timeout = 30
# 该参数决定了, 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目,不要设置过大
net.core.netdev_max_backlog = 8096
# 控制分配内存行为,不允许overcommit
vm.overcommit_memory= 2
# 由于系统物理内存和swap内存都为4G
vm.overcommit_radio=0
# (semmsl  semmns  semopm  semmni)
# semmsl:每个信号量set中信号量最大个数;
# semmns:linux系统中信号量最大个数;
# semopm:semop系统调用允许的信号量最大个数设置,
# 设置成和semmsl一样即可;
# semmni:linux系统信号量set最大个数;
kernel.sem = 500 512000 500 1024
# 生效
sysctl -p
# 关闭允许hugepage可以动态分配
echo never> /sys/kernel/mm/transparent_hugepage/enabled# 资源参数调整
# 查看资源参数命令:ulimit -a
#1、open files 调整为65535
ulimit -n 65535
#2、max user processes 调整为 65535
ulimit -u 65535
  • 安装
# 1.安装Chef Server
rpm -ivh chef-server-core-12.17.33-1.el7.x86_64.rpm# 2.配置server
chef-server-ctl reconfigure
# 配置成功信息如下
# Starting Chef Client, version 12.21.31
#resolving cookbooks for run list: ["private-chef::default"]
#Synchronizing Cookbooks:
#  - private-chef (0.1.1)
#  - openssl (8.1.2)
#  - runit (4.0.4)
#  - packagecloud (0.3.0)
#  - yum-epel (2.1.2)
#  - compat_resource (12.19.1)
#  - enterprise (0.11.0)
# <...省略若干信息...>
# Chef Client finished, 78/580 resources updated in 57 seconds
# Chef Server Reconfigured!# 3.安装管理控制台
chef-server-ctl install chef-manage --path /chef/software/chef-manage-2.5.16-1.el7.x86_64.rpm# 4.重新配置server
chef-server-ctl reconfigure# 5.配置manage
# 先按任意键继续再按q键然后输入yes
chef-manage-ctl reconfigure# 6.创建用户
# 语法:chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' --filename FILE_NAME
chef-server-ctl user-create thinkbam Lee PengFei 452734423@qq.com 'thinkbam' --filename /etc/chef/thinkbam.pem# 7.进入Manage创建组织
# 浏览器输入 https://192.168.0.31
# 创建组织:Thinkbam 简称 :top

Chef Workstation安装

# 1.安装
cd /chef/software
rpm -ivh chef-workstation-0.1.137-1.el6.x86_64.rpm# 2.验证安装
chef verify# 3.配置系统默认ruby
echo 'eval "$(chef shell-init bash)"' >> ~/.bash_profile
source ~/.bash_profile
which ruby
# 输入一下信息说明安装成功
# /opt/chef-workstation/embedded/bin/ruby# 4.下载Starter Kit
# 浏览器输入https://192.168.0.31/organizations/top
# 依次点击: "选择top一栏的设置按钮" -> "Starter Kit" -> "Download Starter Kit"# 5.上传chef-starter.zip
# 上传 chef-starter.zip 至 /opt/chef-data 目录
cd /opt/chef-data
unzip chef-starter.zip
cd chef-repo/# 6.验证安装
knife ssl fetch
knife ssl check
knife node list

Chef Client安装

# 1.安装
rpm -ivh chef-14.2.0-1.el7.x86_64.rpm # 2.校验
chef-client -v
# 输出 Chef: 14.2.0 表示安装成功# 3.登录Workstation机器,创建新节点(即在目标主机安装 Chef Client 与 Chef Server 相关联)
knife bootstrap 192.168.0.40 --ssh-user root --ssh-password 123456 --node-name chefnode# 4.登录Server查看节点详情
# https://192.168.0.31 (用户/密码:thinkbam/123456)

安装完成

Chef Server、Chef Workstation、Chef Client安装完成,后面章节介绍Chef的使用。

Chef 安装教程【系列教程一】相关推荐

  1. pytorch打印模型参数_Pytorch网络压缩系列教程一:Prune你的模型

    Pytorch网络压缩系列教程一:Prune你的模型 本文由林大佬原创,转载请注明出处,来自腾讯.阿里等一线AI算法工程师组成的QQ交流群欢迎你的加入: 1037662480 深度学习模型取得了前所未 ...

  2. 2021win11最新最全MySQL下载安装教程——手把手教你安装MySQL

    2021win11最新最全MySQL下载安装教程--手把手教你安装MySQL 最近重装了win11,给我MySQL整没了,故今天重新装一下. 第一步,进入官网 https://www.mysql.co ...

  3. 原创 | k8s系列教程一:开篇

    作者:潘吉祥 欢迎加入k8s学习系列教程,在接下来的系列文章,你将可以在较短的时间内达到入门k8s的效果. k8s是什么 Kubernetes(K8S)作为Google在2014年发布的一个开源项目, ...

  4. 【网站汇总】安装教程系列

    目录 1.Anaconda 2.Pytorch 3.Tensorflow 4.LaTeX 5.博客搭建 1.Anaconda [CV]Anaconda 安装教程_Fannnnf的博客-CSDN博客 2 ...

  5. linux arcgis10.4安装教程,ArcGIS 10.1 for Server安装教程系列—— Linux下的单机安装

    因为Linux具有稳定,功能强大等特性,因此常常被用来做为企业内部的服务器,我们的很多用户也是将ArcGIS Server安装在Linux上,但是对于初次接触Linux的用户,他们都觉得无从下手,Li ...

  6. maven安装教程安装教程_Maven教程之春

    maven安装教程安装教程 1.简介 在这篇文章中,我们将演示如何针对非常特定的用例对Spring使用Maven依赖项. 我们使用的所有库的最新版本都可以在Maven Central上找到. 对于一个 ...

  7. ArcGIS 10.1 for Server安装教程系列—— Linux下的单机安装

    因为Linux具有稳定,功能强大等特性,因此常常被用来做为企业内部的服务器,我们的很多用户也是将ArcGIS Server安装在Linux上,但是对于初次接触Linux的用户,他们都觉得无从下手,Li ...

  8. anaconda安装教程-手把手教你安装

    文章目录 anaconda安装教程 一.anaconda安装包的下载 二.anaconda安装过程 三.验证anaconda安装是否成功 anaconda安装教程 一.anaconda安装包的下载 1 ...

  9. ClickHouse系列教程一:Debian/Ubuntu 下ClickHouse的安装和使用

    ClickHouse系列教程: ClickHouse系列教程 ClickHouse是一个真正面向列的DBMS.数据按列存储,并在执行数组(向量或列块)期间存储.只要有可能,就会在数组上调度操作,而不是 ...

最新文章

  1. python3中zip()函数的用法
  2. JAVA 内存泄露详解(原因、例子及解决)
  3. jps命令 Java Virtual Machine Process Status Tool
  4. 解决<c:if>无else的问题
  5. spring读取多个配置properties报错“Could not resolve placeholder“的解决方案
  6. 【图论】最小生成树学习笔记
  7. 【企业架构】什么是第一?架构还是流程?
  8. 京东秒杀倒计时(js)
  9. 一文看懂P2P原理及UDP穿透
  10. 2007年计算机工程师,全国计算机等级考试四级数据库工程师考试大纲(2007年版)...
  11. 信念就是一种观念对不对_思路决定出路 观念决定方向 性格决定命运 要改变命运 先确立信念...
  12. insist fortress g55 机械键盘得救了
  13. datasource java用法_Java Datasource介绍
  14. 怎么把分钟转化成秒_一分钟短视频文案范文怎么写?短视频文案必爆公式分享(附文案范文模板)...
  15. 2021-11-15 cv2.erode()和cv2.dilate()的原理理解
  16. 计算机设备驱动程序的安装与更新,电脑系统驱动如何安装更新?
  17. 关于pip install numpy
  18. 联想微型计算机开机密码忘记了,联想笔记本忘记开机密码怎么办
  19. JWT Token、ID Token、Access Token、Refresh Token
  20. java学习笔记--计算器和日历

热门文章

  1. java类名遵从法_程序员必知的Java基础:5条命名规范和8种数据类型归纳
  2. Knockout介绍
  3. 周伯文,刘强东的技术“知己”
  4. TensorFlow系列专题(二):机器学习基础
  5. 计算机中丢失dqdui d,dqd的含义,dqd是什么的缩写,dqd的词语,dqd代表的意思
  6. 2021年G1工业锅炉司炉考试APP及G1工业锅炉司炉证考试
  7. 《融智学进阶文集》01:间接计算模型和间接形式化方法
  8. 后疫情时代,零售行业有哪些新机遇
  9. 用java做一个简单的打字游戏
  10. 【Verilog语法001】Verilog log2 函数