本文将介绍Ansible较常用的8个模组(Modules)
易于:模块的英文给的Debian,Ubuntu的等作业系统(OS)使用的套件模组(包装模块),我们可以通过它管理易于套件。其类似Linux的指令有 apt , apt-get, aptitude 和 dpkg 。
系统需求:需先安装python-apt(python 2)或python3-apt(python 3)的apt套件。
- name: Update repositories cache
apt:
update_cache: yes
- name: Install the package "vim"
apt:
name: vim
state: present
- name: Remove "nano" package
apt:
name: nano
state: absent
命令:模块是个可以在远端上执行指令的指令模组(Commands Modules),刚入门Ansible会用模块不多?只要Linux Shell会通的指令都可以透过它使用。但它不支持变数(变量)和 < , >, |, ; 和 & 等运算,若有这类请需求改用外壳模块。
- name: Reboot at now
command: /sbin/shutdown -r now
- name: create .ssh directory
command: mkdir .ssh creates=.ssh/
- name: cat /etc/passwd
command: cat passwd
args:
chdir: /etc
copy module是从本地复制档案到远端的档案模组(Files Modules),若有使用变数需求者,可改用 模板 模块,这部份冻仁会在第14章提到。其类似的Linux指令为 scp。
- name: copy ssh public key to remote node
copy:
src: files/id_rsa.pub
dest: /home/docker/.ssh/authorized_keys
owner: docker
group: docker
mode: 0644
- name: copy ssh public key to remote node
copy:
src: files/id_rsa.pub
dest: /home/docker/.ssh/authorized_keys
owner: docker
group: docker
mode: "u=rw,g=r,o=r"
- name: copy nginx vhost and backup the original
copy:
src: files/ironman.conf
dest: /etc/nginx/sites-available/default
owner: root
group: root
mode: 0644
backup: yes
文件模块的英文在远端建立和删除档案(文件),目录(目录),软连结(符号连接)的档案模组(文件的模块)。其类似的Linux的的的指令为 chown , chown, ln, mkdir 和 touch。
- name: touch a file, and set the permissions
file:
path: /etc/motd
state: touch
mode: "u=rw,g=r,o=r"
- name: create a directory, and set the permissions
file:
path: /home/docker/.ssh/
state: directory
owner: docker
mode: "700"
- name: create a symlink file
file:
src: /tmp
dest: /home/docker/tmp
state: link
lineinfile module是个可用正规表示式对档案进行插入或取代文字的档案模组(Files Modules)。其类似的Linux指令为 sed 。
- name: remove sudo permission of docker
lineinfile:
dest: /etc/sudoers
state: absent
regexp: '^docker'
- name: set localhost as 127.0.0.1
lineinfile:
dest: /etc/hosts
regexp: '^127\\.0\\.0\\.1'
line: '127.0.0.1 localhost'
owner: root
group: root
mode: 0644
service module是个用来管理远端系统服务的系统模组(System Modules)。其类似的Linux指令为 service 。
- name: start nginx service
service:
name: nginx
state: started
- name: stop nginx service
service:
name: nginx
state: stopped
- name: restart network service
service:
name: network
state: restarted
args: eth0
外壳 模块可以的英文在远端用 /bin/sh 执行指令的指令模组(命令模块),支持变数(变量)和 <, >, | , ; 和 & 等运算。
- name: check files number
shell: ls /home/docker/ | wc -l
- name: kill all python process
shell: kill -9 $(ps aux | grep ssh | awk '{ print $2 }')
stat module是用来检查档案状态的档案模组(Files Modules)。其类似的Linux指令为 stat
- name: check the 'vimrc' target exists
stat:
path: /home/docker/.vimrc
register: stat_vimrc
- name: touch vimrc
file:
path: /home/docker/.vimrc
state: touch
mode: "u=rw,g=r,o=r"
when: stat_vimrc.stat.exists == false
- name: Use md5sum to calculate checksum
stat:
path: /path/to/something
checksum_algorithm: md5sum
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论