安装ansible
brew install ansible 或者 pip3 install ansible
添加远程主机
设置秘钥
mac登录远程主机
ssh -p 5700 root@192.168.123.211
ssh localhost
#设置双机信任
ssh-kyegen -t rsa
#设置主机两边的ssh配置文件
vi /etc/ssh/sshd_config/
PermitRootLogin yes
#将秘钥文件复制到目标主机B 即A主机免密登录B主机
sudo ssh-copy-id -i id_rsa.pub -p 5700 root@rhxk7q6.ner.ipyingshe.com
#测试免密登录B主机
ssh -p 5700 root@rhxk7q6.ner.ipyingshe.com
ansible添加主机
ansible配置文件
vim /etc/ansible/ansible.cfg
[defaults]
#主机配置文件
inventory=./hosts
#私钥路径
private_key_file = /Users/mrdylan/.ssh/id_rsa
#并发连接数
#forks =5
## 配置ansible管理的主机
vim /etc/ansible/hosts
192.168.123.213 ansible_ssh_user=root ansible_ssh_port=5700
ansible测试一下 ping功能
sudo ansible 192.168.1.10 -m ping
测试传送文件到B机
# 在A机上面执行 在B机上面需要安装rsync # yum install rsync
sudo ansible 192.168.231.123 -m synchronize -a "src=update.yml dest=/root/"
整体目标: 在本机修改好nginx配置文件,并批量更新到目标主机。
分解目标是 1.拷贝文件 2. 重启服务
给所有的目标主机的nginx的配置文件末尾都添加如下:
在ansible的主机上面的配置文件修改 非目标机nginx的配置文件 这个文件单独管理在ansible的files目录下
mkdir -p /etc/ansible/nginx_config/roles/new/files
vim /etc/ansible/nginx_config/roles/new/files/nginx.conf
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include servers/*.conf # 这是新加的
}
将上述修改后的nginx文件通过ansible下发到目标机
ansible 拷贝文件模块
ansible 主机配置文件
cat /etc/ansible/hosts #主要管理您的远程主机文章来源:https://www.toymoban.com/news/detail-654406.html
[defaults] #主机分组标签
192.168.1.10 ansible_ssh_user=morey ansible_ssh_port=22
vim /etc/ansible/deploy.nginx/roles/new/tasks/nginx_update.yml文章来源地址https://www.toymoban.com/news/detail-654406.html
- name: copy nginx.conf file
hosts: defaults
user: morey
tasks:
- name: cpoy file
ansible.builtin.copy:
src: /etc/ansible/deploy.nginx/roles/new/files/nginx.conf #ansible主机文件位置
dest: /usr/local/etc/nginx/nginx.conf #远程目标主机位置
owner: morey
group: admin
mode: 0644
remote_src: yes #远程文件存在 允许覆盖远程文件
- name: restart nginx
shell: systemctl restart nginx
到了这里,关于ansible 修改远程主机nginx配置文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!