Char02 Ansible 安装与配置
Ansible 配置管理系统由 控制主机和被管理节点组成
控制主机,目前不支持windows OS
1 Install
1.1 源码安装
Tar包安装方式
制作rpm包安装方式
1.2 包管理安装
2 Ubuntu :
sudo apt-gett install software-properties-common sudo apt-add-repository ppa:ansible/ansible sudo apt-get udpate sudo apt-get install ansible
3 Homebrew ( Mac OSX )安装方式
4 PIP
2.3 配置运行环境
1 ANSIBLE_CONFIG
./ansible.cfg -> ~/.ansible.cfg -> /etc/ansible.cfg
2 使用公钥认证
2.3.3 配置linux 主机ssh 无密码访问
step 1 : ansbie control 上创建秘钥:
root@Ly:~# ssh-keygen -t rsa -C "YL@XXX" Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 2a:c8:b2:7a:13:94:81:a9:e4:fe:5f:ac:7c:4b:b6:24 YL@XXX The key's randomart image is: +--[ RSA 2048]----+ | o | |o.. | |+ o | |..o | |.. S | | o.. .. | |. +..E.* | | oo...B.. | |+. ..+.o. | +-----------------+
setp 2 : 下发密钥:
控制主机将公钥id_rsa.pub下发到被管理节点上用户的.ssh目录
# ssh-copy-id -i ~/.ssh/id_rsa.pub jenkins@TestSlave5 The authenticity of host 'testslave5 (172.17.150.21)' can't be established. ECDSA key fingerprint is 5e:a9:90:86:c8:73:4f:05:e1:7d:05:d3:1c:53:b0:d9. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys jenkins@testslave5's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'jenkins@TestSlave5'" and check to make sure that only the key(s) you wanted were added.
2.4 Ansible 测试
2.4.1 主机连通性测试
step 1 : 修改主机与组配置 , ansible_hosts 格式为ini
# cat ansible_hosts 127.0.0.1 [TestSlavesMonkey] TestSlave[5:6]
step 2 :
# ansible -i ansible_hosts TestSlavesMonkey -m ping -u jenkins TestSlave6 | success >> { "changed": false, "ping": "pong" } TestSlave5 | success >> { "changed": false, "ping": "pong" }
2.4.2 在被管理节点上批量执行
# ansible -i ansible_hosts TestSlavesMonkey -u jenkins -m shell -a 'echo hello ansible' TestSlave5 | success | rc=0 >> hello ansible TestSlave6 | success | rc=0 >> hello ansible
2.5 获取帮助信息
# ansible-doc -h Usage: ansible-doc [options] [module...] Show Ansible module documentation Options: --version show program's version number and exit -h, --help show this help message and exit -M MODULE_PATH, --module-path=MODULE_PATH Ansible modules/ directory -l, --list List available modules -s, --snippet Show playbook snippet for specified module(s) -v Show version number and exit
ansible-doc -l 列出了Ansible 系统支持的模块,Ansible 安装后能够列出259个模块