Open felix-cao opened 5 years ago
目标主机
$ adduser admin
$ passwd admin
$ vi /etc/sudoers
$ systemctl restart sshd
ansible 主机
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@192.168.1.133
$ vi /etc/ansible/hosts
目标主机
$ ssh-keygen -t rsa
把上面生成的 key 放到 gitlab
vi /usr/local/nginx/conf/nginx.conf
vi /usr/local/php/etc/php.ini
vi /usr/local/php/etc/php-fpm.conf
Ansible 官网,本文旨在讲解
Ansible
的安装与简单配置Ansible is Simple IT Automation
——简单的自动化IT工具。这是官方给的定义,这个工具的目标有这么几项:自动化部署APP;自动化管理配置项;自动化的持续交互;自动化的(AWS)云服务管理。所有的这几个目标从本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已。通俗的说就是批量的在远程服务器上执行命令 。一、场景描述
一台
Ansible
服务器,三台被控服务器:Ansible
服务器)二、安装
2.1、配置
Yum
源输入如下内容
2.2、在
Ansible
服务器上安装ansible
软件2.3、三个重要的文件
yum
安装完成后会在目录/etc/ansible/
下生成三个文件看下版本:
三、配置
3.1、配置 IP 清单
在
hosts
文件中添加三台被控服务器的IP
地址列表:[weixin_H5]
表示分组,也可以在 ip 后指定ansible_user
,上图中192.168.1.73 ansible_user = admin
即以admin
账号登录到192.168.1.73
。3.2、生成SSH密钥
虽然
ansible
的配置文件已经设置完成被控服务器的IP
地址列表,但是因为ansible
是基于ssh
协议,所以还需要配置密钥对验证在
Ansible
服务器中生成ssh
密钥对一路回车即可在
$HOME/.ssh
目录下生成id_rsa
和id_rsa.pub
私钥和公钥两个文件。 注: 如果在生成密钥的时候设置了密码,ansible每次执行命令的时候,都会提示输入密钥密码,可通过下面的命令记住密码。3.3、密钥拷贝至被控主机
将公钥拷贝到三台被管控主机上, 这三台机子都限制了 root 登录,仅以
admin
用户登录注:_
ssh-copy-id
命令会自动将id_rsa.pub
文件的内容追加到远程主机admin
用户下.ssh/authorized_keys
文件中。_3.4、ansible 配置文件
3.4.1、禁用每次执行 ansbile 命令检查 ssh key host
3.4.2、开启日志记录
3.4.3、 ansible 连接加速配置
3.5、测试
-m
是指定模块,-u
是指定用户73 那台机子有权限问题,要求
/home
目录下的admin/.ssh
两个目录必须是700
,admin/.ssh/authorized_keys
的权限是600
,去改一下即可。ansible
是基于SSH
协议,所以可以ping
通的主机储存在.ssh/known_hosts
的文件当中。当然就算不ping
通也可以用shell
脚本实现批量推送公钥。