• Centos 7安装与配置chef


      背景:随着DevOps 逐渐流行起来,越来越多的工作需要自动化处理,而chef就是其中一款能实现自动化管理的工具,掌握类似chef这样的自动化工具,相信会使你在未来的竞争中更具优势。

      俗话说“好记性不如烂笔头”,以下记录一来为了记忆,二来希望能帮到对chef有兴趣的朋友们。

    一、 简介:chef总共分成三部分,分别为chef-server、workstation和node

      Server维护一套配置脚本(cookbook),与每个被管节点(node)交互并给出配置指令。

      Workstation定义cookbook,并将cookbook上传到chef server上,以保证被管节点能从chef server上取得最新的配置指令。

      Node被管节点,可以是任何机器(包括物理机与虚拟机),chef node通过workstation从chef-server取得配置指令。

    二、 配置环境

    名称

    主机名

    IP

    系统

    内存

    chef-server

    server01.zun1.com

    172.16.1.201

    centos 7

    1G

    workstation

    workstation.zun1.com

    172.16.1.202

    centos 7

    1G

    Node

    node1.zun1.com

    172.16.1.203

    centos 7

    1G

    三、chef-server的安装

      1、  创建目录并切换:

    $  mkdir –p /home/zun1/soft && cd /home/zun1/soft
    

      2、  配置ntp时间服务器:

    $ vim /etc/chrony.conf                              //如无此文件,请安装:yum install chronyd -y
    ---------------------------------------->
     server time.windows.com iburst
     server s1b.time.edu.cn iburst
    $ sudo systemctl start chronyd
    $ sudo systemctl enable chronyd       //查看是否生效:chronyc sources -v

      3、  将三台主机名称加入hosts

    $ sudo vim /etc/hosts
    ------------------------------------------->
    172.16.1.201 server01.zun1.com
    172.16.1.202 workstation.zun1.com
    172.16.1.203 node1.zun1.com                 //保存后用scp复制到另外两台电脑
    

      4、  安装chef-server

    $ cd /home/zun1/soft
    $ wget https://packages.chef.io/files/stable/chef-server/12.15.8/el/7/chef-server-core-12.15.8-1.el7.x86_64.rpm
    $ sudo rpm –ivh chef-server-core-12.15.8-1.el7.x86_64.rpm
    $ sudo yum update –y
    $ sudo chef-server-ctl reconfigure
    

           验证方法:能正常打开https://172.16.1.201 就表示安装成功了。

      5、安装chef管理控制台

    $ cd /home/zun1/soft
    $ wget https://packages.chef.io/files/stable/chef-manage/2.5.4/el/7/chef-manage-2.5.4-1.el7.x86_64.rpm
    $ sudo chef-server-ctl install chef-manage –path /home/jeff/soft/chef-manage-2.5.4-1.el7.x86_64.rpm
    $ sudo chef-server-ctl reconfigure
    $ sudo chef-manage-ctl reconfigure                  //接着按ESC,然后输入yes确定接受协议后方能配置完成
    

      6、创建管理用户

     $ sudo chef-server-ctl user-create jeff jeff lee 8888888@qq.com 123456 --filename /root/.chef/jeff.pem     //第一个jeff为登录用户,密码为:123456
    

      7、  打开页面登录:https://172.16.1.201 ,登录用户:jeff,密码:123456,然后创建组织zun1.com,简称zun1。

    四、workstation的安装

      1、  安装chefdk

    $ cd /home/zun1/soft
    $ wget https://packages.chef.io/files/stable/chefdk/2.0.28/el/7/chefdk-2.0.28-1.el7.x86_64.rpm
    $ sudo rpm –ivh chefdk-2.0.28-1.el7.x86_64.rpm
    

      2、  配置NTP时间服务器,配置方法同上,此处不再赘述。

      3、  配置环境变量:

    $ echo 'eval "$(chef shell-init bash)"' >> ~/.bash_profile            
    $ source ~/.bash_profile
    $ which ruby                                       //验证安装结果
    ------------------------------------->
    /opt/chefdk/embedded/bin/ruby                  //证明安装成功
    

      4、  下载chef-starter.zip的方法:进入chef-server管理页面后:Administrator -> Starter Kit -> Download Start Kit,如下图:

     

      

      5、  复制到/data/下,并更名

    $ sudo mkdir –p /data && cd /data/
    $ unzip /home/zun1/chef-starter.zip  /home/zun1
    $ mv /home/zun1/chef-starter /home/zun1/chef-repo
    

      6、  进行/data/chef-repo下验证安装结果,没报错则证明安装成功

    $ cd /data/chef-repo
    $ knife ssl fetch
    $ knife ssl check
    $ knife nod list
    

    五、Node的安装:node的安装跟workstation一样,都是安装chefdk

      1、安装chefdk

    $ cd /home/zun1/soft
    $ sudo rpm –ivh chefdk-2.0.28-1.el7.x86_64.rpm  //将workstation的文件复制过来
    $ echo 'eval "$(chef shell-init bash)"' >> ~/.bash_profile 
    $ source ~/.bash_profile
    

      2、配置NTP时间,同上。

      3、添加节点到服务器:

    $ cd /data/chef-repo
    $ knife bootstrap 172.16.1.203 --ssh-user root --ssh-password redhat --node-name node1.zun1.com
    

      4、进入登录界面查看节点:http://172.16.1.201

    六、测试:给node安装apache,并创建一个主页

      1、下载cookbook

    $ knife cookbook site download learn_chef_httpd
    

      2、  解压

    $ tar zxvf learn_chef_httpd.tar.gz
    

      3、  移动到对应的目录

    $ mv learn_chef_httpd /data/chef-repo/cookbooks/
    

      4、  上传到chef-server

    $ knife cookbook upload learn_chef_httpd
    

      5、  将cookbook加入runlist

    $ knife bootstrap 172.16.1.203 --ssh-user  root --ssh-password ‘redhat’ 
      --sudo --use-sudo-password --node-name node1.zun1.com 
      --run-list ‘recipe[learn_chef_httpd]’
    

      6、  打开链接验证:http://172.16.1.203

      7、下图为chef-server后台界面

    注意事项:新节点如果添加不进去,请注意排查以下几个问题

    1、时间同步;

    2、hosts文件需添加对应的IP+主机名称;

    3、selinux

    PS:此配置参考自  https://wenku.baidu.com/view/7d297631657d27284b73f242336c1eb91a3733ea.html

  • 相关阅读:
    解决jenkins sonar扫描中文名的文件会失败
    ukey命令行签名:解决safenet ukey 每次签名都要输入token password问题(批量签名)
    vmp如何使用命令行加壳exe或者dll
    tomcat 安装的jenkins的迁移解决磁盘爆满的问题
    cocoapods 执行pod trunk push 报错CDN: trunk URL couldn't be downloaded: https://raw.githubusercontent.com/CocoaPods/Specs/master/Spec
    使用NodeJs搭建的小型web应用
    对WebSocket技术的学习与探索(一)
    Git本地操作相关介绍
    NodeJs入门学习(一)
    ES6深入学习记录(三)编程风格
  • 原文地址:https://www.cnblogs.com/jefflee168/p/7269831.html
Copyright © 2020-2023  润新知