0
点赞
收藏
分享

微信扫一扫

ansible环境配置

您好 2022-02-19 阅读 93

1 )控制节点( master ): linux unix

需要的软件包: ansible python3 python3.5+ )或者 python2 python2.7+

[class@master yum.repos.d] $ cat qinghua.repo

[base]

name = base

baseurl = https://mirrors.163.com/rocky/8.5/AppStream/x86_64/os/

gpgcheck = 0 注: epel 源不会写的话,参照 https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.3

e221b11rjKSRs

2 )受控节点( node ): linux windows unix

需要的软件包: python3 python3.5+ )或者 python2 python2.7+

3 )写好当前局域网内主机的 hosts 文件

控制节点和受控节点都要写:

2 ansible 的基础环境配置

1 )控制节点:添加一个普通用户去使用 ansible

[app]

name = app

baseurl = https://mirrors.163.com/rocky/8.5/BaseOS/x86_64/os/

gpgcheck = 0

[class@master yum.repos.d] $ cat epel-qinghua.repo

[epel]

name = epel

baseurl = https://mirrors.tuna.tsinghua.edu.cn/epel/8/Everything/x86_64/

gpgcheck = 0

[class@master ~] $ sudo yum install ansible python3 -y

安装成功后可使用如下命令查看安装软件的版本号

[class@master ~] $ ansible --version

ansible 2 .9.27

config file = /home/class/ansible.cfg

configured module search path = [ '/home/class/.ansible/plugins/modules' ,

'/usr/share/ansible/plugins/modules' ]

ansible python module location = /usr/lib/python3.6/site-packages/ansible

executable location = /usr/bin/ansible

python version = 3 .6.8 (default, Nov 9 2021 , 14 :44:26) [GCC 8 .5.0 20210514

(Red Hat 8 .5.0-3)]

[root@node12 ~] # cd /etc/yum.repos.d/

[root@node12 yum.repos.d] # ll

total 4

-rw-r--r-- . 1 root root 93 Feb 17 16 :29 qinghua.repo

[root@node12 yum.repos.d] # cat qinghua.repo

[base]

name = base

baseurl = https://mirrors.163.com/centos-vault/7.8.2003/os/x86_64/

gpgcheck = 0

[root@node12 yum.repos.d] # yum install python -y

[class@master ~] $ cat /etc/hosts

192 .168.168.11 master

192 .168.168.12 node12

192 .168.168.13 node13 2 )受控节点:选取一个被控制节点远程连接的普通用户,配置该用户可以使用 sudo

3 )配置控制节点的 class 可以通过秘钥登录受控节点的 student 用户

方法 1

3 ansible 的清单和配置文件

1 )清单

默认生效的是 /etc/ansible/hosts ,文件内容使用 INI 样式书写 ;

也可以使用 ansible 命令行选项 - i 指定使用的清单文件;

[root@master ~] # useradd class

[root@master yum.repos.d] # useradd student

[root@master ~] # cat /etc/sudoers

class ALL = (ALL) NOPASSWD:ALL

student ALL = (ALL) NOPASSWD:ALL

[root@node12 yum.repos.d] # useradd student

[root@node12 ~] # cat /etc/sudoers

student ALL = (ALL) NOPASSWD:ALL

[root@master ~] # su - class

Last login: Thu Feb 17 21 :27:12 CST 2022 on pts/0

[class@master ~] $ ssh -keygen

[class@master ~] $ ssh -copy-id student@node12

[class@master ~] $ ssh -copy-id student@node13

[class@master ~] $ cat inventory

node12

node13

[webservers]

master

[dbservers]

node12

[servers:children]

webservers

dbservers

[class@master ~] $ ansible all -i inventory --list-hosts

hosts (3):

node13

master

node12

[class@master ~] $ ansible ungrouped -i inventory --list-hosts

hosts (1):

node13

[class@master ~] $ ansible webservers -i inventory --list-hosts

hosts (1):

master 2 ansible 的配置文件

[class@master ~] $ ll /etc/ansible/ansible.cfg

[class@master ~] $ ll ~/.ansible.cfg

[class@master ~] $ ll ./ansible.cfg

三个文件的生效优先顺序可以通过如下命令查看:

[class@master ~] $ ansible --version

ansible 2 .9.27

config file = /home/class/ansible.cfg

configured module search path = [ '/home/class/.ansible/plugins/modules' ,

'/usr/share/ansible/plugins/modules' ]

ansible python module location = /usr/lib/python3.6/site-packages/ansible

executable location = /usr/bin/ansible

python version = 3 .6.8 (default, Nov 9 2021 , 14 :44:26) [GCC 8 .5.0 20210514

(Red Hat 8 .5.0-3)]

实验:

[class@master ~] $ mkdir test1/

[class@master test1] $ cat

ansible.cfg inventory

[class@master test1] $ cat ansible.cfg

[defaults]

inventory = ./inventory # 指定清单文件

remote_user = student # 指定连接受控主机的 student 用户

ask_pass = false # 远程登录受控主机时要求不输入密码,所以要优先配置 ssh 的密钥登

[privilege_escalation]

become = True # 登录到受控主机后是否变为其他用户

become_method = sudo # 可以使用 su 或者 sudo 的方式变为其他用户,当前使用 sudo 方式,默

认是 sudo

become_user = root #sudo 到哪个用户

become_ask_pass = False #sudo 是否输入密码

注:受控节点需要提前设置普通用户的 sudo 配置

[class@master test1] $ cat inventory

node12

node13

master

[class@master test1] $ ansible all -m ping

node13 | SUCCESS = > {

"ansible_facts" : {

"discovered_interpreter_python" : "/usr/libexec/platform-python"

},

"changed" : false ,

"ping" : "pong"

}

node12 | SUCCESS = > {

"ansible_facts" : {

"discovered_interpreter_python" : "/usr/bin/python"

},

"changed" : false ,

"ping" : "pong"

}

master | SUCCESS = > {

"ansible_facts" : { "discovered_interpreter_python" : "/usr/libexec/platform-python"

},

"changed" : false ,

"ping" : "pong"

}

[class@master test1] $ ansible --help

[class@master test1] $ man ansible

举报

相关推荐

0 条评论