必威体育Betway必威体育官网
当前位置:首页 > IT技术

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

时间:2019-08-18 10:43:14来源:IT技术作者:seo实验室小编阅读:51次「手机版」
 

chef

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 架构说明

    • 一个中心服务器(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 [email protected] '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 安装教程【系列教程一】

Chef 安装教程【系列教程一】 版本均为官方最新稳定版 Chef Server 12.17.33、Chef Manage 2.5.16、Chef Workstation 0.1.13

分享到:

栏目导航

推荐阅读

热门阅读