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
Centos 7安装与配置chef的更多相关文章
- 在 CentOS 上安装和配置 OpenNebula
转自:http://www.aikaiyuan.com/4889.html 我们提到的云计算一般有三种类型:软件即服务(Software as a Service, SaaS),平台即服务(Platf ...
- CentOS 7 安装 Nginx 配置反向代理
Linux使用Nginx Yum存储库上安装Nginx,适用于Red Hat Enterprise Linux和CentOS系统. 1.添加设置Nginx Yum存储库 在CentOS中首次安装Ngi ...
- 阿里云CentOs服务器 安装与配置mysql数据库
阿里云CentOs服务器 安装与配置mysql数据库 以上为Linux安装mysql数据库 Linux 安装mysql 数据库 一下为mysql 安装教程 Using username "r ...
- CentOS 7 安装、配置、使用 PostgreSQL 9.5及PostGIS2.2
学习CentOS下安装使用PostgreSQL [安装过程] 1.添加RPM yum install https://download.postgresql.org/pub/repos/yum/ ...
- CentOS SSH安装与配置
SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议. 传 统的网络服务程序, ...
- centos下安装并配置tomcat
1,安装jdk,centos默认安装了java-openjdk的环境,但是不带JDK,运行 yum install java-1.7.0-openjdk java-1.7.0-openjdk-deve ...
- CentOS 7 安装、配置、使用 PostgreSQL 10 安装及基础配置
官网安装方法:https://www.postgresql.org/download/linux/redhat/ 卸载的话使用 yum remove 相应的安装 Install the reposit ...
- CentOS 7 安装、配置、使用 PostgreSQL 9.5(一)安装及基础配置
一直不知道怎么读这个数据库的名字,在官网上找到了文档.PostgreSQL is pronounced Post-Gres-Q-L. 读音 What is PostgreSQL? How is it ...
- centos msyql 安装与配置
Mysql具有简单易学.体积小等优点,深受编程开发初学者的喜爱 工具/原料 接入Internet的Centos计算机 安装Mysql 1 Centos 6.6下安装Mysql很简单, yum list ...
随机推荐
- MYSQL:基础——3N范式的表结构设计
基于3N范式的数据表设计 范式 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小. 关系数据库现有六种范 ...
- 图片加载控件Fresco
使用教程:https://www.fresco-cn.org/docs/index.html https://github.com/facebook/fresco application初始化fre ...
- Yii2数据库操作的各种写法
-------------------------------ActiveRecord---------------------------------------- 查询: // find the ...
- 第一篇 css导入方式 及选择器
一 推荐资料 推荐书籍 css Zen Garden 中文(css禅意花园) 二.css样式 1.css样式表特征 继承性 大多数css的样式规则可以被继承 层叠性 1)可以定义 多个样式 2)不冲 ...
- 本地储存(localStorage)记录
- 本地存储 + localStorage.getItem("search_history") 获取本地存储 + localStorage.setItem("a" ...
- HTML特效文字代码大全
HTML特效文字代码大全一.从右向左移代码<marquee direction=left>需要移动的文字</marquee>二.从左向右移代码<marquee dire ...
- 异步刷新页面的前进与后退的实现--pushState replaceState
实现目标 页面的跳转(前进后退,点击等)不重新请求页面 页面URL与页面展现内容一致(符合人们对传统网页的认识) 在不支持的浏览器下降级成传统网页的方式 使用到的API history.state 当 ...
- phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建
phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建 场景:当前有一张表:Ntime,因为表太大了,考虑要分表: Ntime2017 Nti ...
- python函数的参数匹配
版本:一般用python2.7.6 python3.4.3会标注 1.不可变对象(整数.字符串)通过对象引用进行传递,在函数内部不可改变. >>> def f(a): ... a=1 ...
- 造成segmentation fault的可能原因分析
一 造成segment fault,产生core dump的可能原因 1.内存访问越界 a) 由于使用错误的下标,导致数组访问越界 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串 ...