1.ansible的安装
(1)准备两台机器,分别 IP为114.67.232.214,主机名为centos100
IP为114.67.233.22,主机名为centos101
(2)须要在centos100上安装ansible,直接使用yum安装:yum install ansible
(3)设置密钥认证
在centos100上操做:ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub 114.67.233.22
测试成功:
[root@centos100 ~]# ssh 114.67.233.22
Last login: Mon Jul 9 17:36:24 2018 from 1.119.132.165
Welcome to JCLOUD Elastic Compute Service
[root@centos101 ~]# logout
Connection to 114.67.233.22 closed.
(4)vim /etc/ansible/hosts
[web]
114.67.232.214
114.67.233.22
说明:在此文件中增长上述内容。web为主机组名字,自定义的,下面的两个IP为组内的机器IP
vim /etc/ansible/ansible.cfg
host_key_checking = False 取消这一行的注释。(打开的理由:若是有台被管节点从新安装系统并在know_hosts中有了与以前不一样的密钥信息,就会提示一个密钥不匹配的错误信息,直到被纠正为止。
在使用ansible时,若是有台被管节点没有在know_hosts中被初始化,将会在使用Ansible或定时执行ansible时提示对key信息的确认)nginx
##################################
playbook 实战-nginx 安装 1
(1)思路:先在一台机器上编译安装好nginx,打包,而后再用ansible去下发
tar zxf nginx-1.8.1.tar
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
yum install -y pcre-devel openssl-devel gcc 解决依赖,缺乏什么装什么
make
make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 作个软链接
nginx -t 检查语法错误
nginx 启动nginx
此时nginx安装完成
(2)cd /etc/ansible
mkdir nginx_install
cd nginx_install
mkdir -p roles/{common,install}/{handlers,files,meta,tasks,templates,vars}web
说明:roles目录下面有两个角色,common为一些准确操做,install为安装nginx的操做。每一个角色下面又有几个目录,install为安装nginx的操做,每一个角色下面又有几个目录,handlers下面是当发生
改变时要执行的操做,一般用再配置文件发生改变,重启服务。files为安装时用到的一些文件,meta为说明信息,说明角色依赖等信息,tasks里面是核心的配置文件,templates一般存一些配置
文件,启动脚本等模板文件,vars下为定义的变量。
###################################
playbook 实战-nginx 安装 2
(1)须要事先准备好用到的文件,具体以下:
在一台机器上事先编译安装好nginx,配置好启动脚本,配置好配置文件。shell
安装好后,咱们须要把nginx目录打包,并放到/etc/ansible/nginx_install/roles/install/files 下面,名字为nginx.tar.gz cd /usr/local tar czvf nginx.tar.gz --exclude "nginx.conf" --exclude "vhost" nginx/ mv nginx.tar.gz /etc/ansible/nginx_install/roles/install/files 启动脚本,配置文件都要放到/etc/ansible/nginx_install/roles/install/templates下面 cp nginx/conf/nginx.conf /etc/ansible/nginx_install/roles/install/templates cp /etc/init.d/nginx /etc/ansible/nginx_install/roles/install/templates/ (我没加) cd /etc/ansible/nginx_install/roles 定义common的tasks,nginx是须要一些依赖包的 vim ./common/task/main.yml - name: install initializtion require software yum: name="pcre-devel,oepnssl-devel,gcc" state=installed
#####################################
playbook 实战-nginx 安装 3
(1)定义变量
vim /etc/ansible/nginx_install/roles/install/vars/main.yml
nginx_user: www
nginx_port: 80
nginx_basedir: /usr/local/nginx
(2)首先要把全部用到的文档拷贝到目标机器
vim /etc/ansible/nginx_install/roles/install/tasks/copy.ymlvim
include: install.yml
到此两个roles: common和install就定义完成了,接下来要定义一个入口配置文件centos
vim /etc/ansible/nginx_install/install.ymlssh